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);
}