public void ShouldBeAbleToRegisterUser() { LoginId loginid = new LoginId("*****@*****.**"); string firstname = "firstName"; string lastname = "lastName"; Name name = new Name(firstname, lastname); Like[] likes = new Like[] { new Like() {UserId = loginid, Text = "Like1"}, new Like() {UserId = loginid, Text = "Like2"}, new Like() {UserId = loginid, Text = "Like3"}, }; Dislike[] dlikes = new Dislike[] { new Dislike() {UserId = loginid, Text = "Dislike1"}, new Dislike() {UserId = loginid, Text = "Dislike2"}, new Dislike() {UserId = loginid, Text = "Dislike3"}, }; Image image = new Bitmap(1, 1); IUserRepository repository = new UserRepository(session); User user = new User(loginid, name) { DateOfBirth = new GetInDate(DateTime.Today.AddYears(-25)), Location = new Location { City = "Banglore" }, Gender = new Gender(), Likes = new HashedSet<Like>(likes), Dislikes = new HashedSet<Dislike>(dlikes), Picture = new Photo { Bytes = new byte[] { 1, 2, 3, 4, 5 } }, Profile = new Profile("Big Profile"), Repository = repository }; repository.Save(user); session.Flush(); session.Evict(user); User savedUser = repository.LookupUsers(user)[0]; Assert.AreEqual(savedUser.LoginId, user.LoginId); Assert.AreEqual(savedUser.Location.City, user.Location.City); Assert.AreEqual(savedUser.Location.Country, user.Location.Country); Assert.AreEqual(savedUser.DateOfBirth.Value, user.DateOfBirth.Value); Assert.AreEqual(savedUser.Picture.Bytes.Length, user.Picture.Bytes.Length); for (int i = 0; i < savedUser.Picture.Bytes.Length; i++) Assert.AreEqual(savedUser.Picture.Bytes[i], user.Picture.Bytes[i]); Assert.AreEqual(savedUser.Likes.Count, user.Likes.Count); var arraylikes1 = savedUser.Likes.ToArray(); var arraylikes2 = user.Likes.ToArray(); for (int i = 0; i < arraylikes1.Length; i++) Assert.AreEqual(arraylikes1[i].Text, arraylikes2[i].Text); Assert.AreEqual(savedUser.Dislikes.Count, user.Dislikes.Count); var arraydislikes1 = savedUser.Dislikes.ToArray(); var arraydislikes2 = user.Dislikes.ToArray(); for (int i = 0; i < arraydislikes1.Length; i++) Assert.AreEqual(arraydislikes1[i].Text, arraydislikes2[i].Text); Assert.AreEqual(savedUser.Name.FirstName, user.Name.FirstName); Assert.AreEqual(savedUser.Name.LastName, user.Name.LastName); Assert.AreEqual(savedUser.Gender.Code, user.Gender.Code); }
public void ShouldBeAbleToPersistInvitersOnInvite() { IUserRepository repository = new UserRepository(session); var loginid = new LoginId("*****@*****.**"); var name = new Name("Martin", "Fowler"); var martin = new User(loginid, name) { Repository = repository }; var loginid2 = new LoginId("*****@*****.**"); var name2 = new Name("Roy", "Singham"); var roy = new User(loginid2, name2) { Repository = repository }; repository.Save(roy); repository.Save(martin); martin.InviteFriend(roy); session.Flush(); session.Evict(martin); session.Evict(roy); IList<User> users = repository.LookupUsers(roy); Assert.IsTrue(users[0].Inviters.Contains(martin)); }