public void ShouldGetUserByUsername()
{
const string username = "jama";
var educations = _educations.Where(a => a.UserId == 1).ToList();
_userRepository = new Mock<IUserRepository>();
_userRepository.Setup(a => a.Find(It.IsAny<Expression<Func<User, bool>>>(),
It.IsAny<Func<IQueryable<User>, IOrderedQueryable<User>>>(), It.IsAny<string>()))
.Returns(_users);
_addressRepository = new Mock<IAddressRepository>();
_addressRepository.Setup(a => a.Find(It.IsAny<Expression<Func<Address, bool>>>(), false))
.Returns(_addresses);
_educationRepository = new Mock<IEducationRepository>();
_educationRepository.Setup(a => a.Find(It.IsAny<Expression<Func<Education, bool>>>(), true))
.Returns(educations);
_mediaRepository = new Mock<IMediaRepository>();
_mediaRepository.Setup(a => a.Find(It.IsAny<Expression<Func<Media, bool>>>(), null, string.Empty))
.Returns(_mediae);
_usersLogic = new UsersLogic(_userRepository.Object, _addressRepository.Object,
_educationRepository.Object, _mediaRepository.Object);
var user = _usersLogic.GetByUserName(username);
Assert.NotNull(user);
Assert.NotNull(user.Address);
Assert.NotNull(user.Education);
Assert.NotNull(user.Hobbies);
Assert.NotNull(user.Picture);
Assert.NotNull(user.Background);
Assert.AreEqual(user.UserName, username);
}