public void Can_Delete_Game() { //Arrange using (var factory = new SQLiteDbContextFactory()) { using (var context = factory.CreateContext()) { context.Games.Add(new Game { GameId = 1, Title = "TestToDelete" }); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var gameRepository = new EFGameRepository(context); gameRepository.DeleteGame(1); } //Assert using (var context = factory.CreateContext()) { Assert.Equal(0, context.Games.Count()); } } }
public void Can_Edit_Game() { //Arrange using (var factory = new SQLiteDbContextFactory()) { using (var context = factory.CreateContext()) { context.Games.Add(new Game { GameId = 1, Title = "TestToModify" }); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var gameRepository = new EFGameRepository(context); gameRepository.SaveGame(new Game { GameId = 1, Title = "TestAfterModification" }); } //Assert using (var context = factory.CreateContext()) { Assert.Equal(1, context.Games.Count()); Assert.Equal("TestAfterModification", context.Games.Single().Title); Assert.Equal(1, context.Games.Single().GameId); } } }
public void Can_Get_Invitation() { //Arrange using var factory = new SQLiteDbContextFactory(); //Arrange var user1 = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "id2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "id3", UserName = "******", Email = "*****@*****.**" }; var request1 = new FriendInvitation { FriendInvitationId = 1, Sender = user1, Invited = user2, InvitedEmail = user2.Email, Status = FriendInvitationStatus.Pending }; var request2 = new FriendInvitation { FriendInvitationId = 2, Sender = user3, InvitedEmail = "*****@*****.**", Status = FriendInvitationStatus.Pending }; var result = new FriendInvitation(); //Act using (var context = factory.CreateContext()) { context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.SaveChanges(); context.FriendInvitations.Add(request1); context.FriendInvitations.Add(request2); context.SaveChanges(); var friendInvitationRepository = new EFFriendInvitationRepository(context); result = friendInvitationRepository.GetInvitation(request1.FriendInvitationId); } using (var context = factory.CreateContext()) { Assert.Equal(3, context.Users.Count()); Assert.Equal(2, context.FriendInvitations.Count()); Assert.Equal(request1.FriendInvitationId, result.FriendInvitationId); Assert.Equal(FriendInvitationStatus.Pending, result.Status); Assert.Equal(request1.Invited.Id, result.Invited.Id); Assert.Equal(request1.InvitedId, result.InvitedId); Assert.Equal(request1.InvitedEmail, result.InvitedEmail); Assert.Equal(request1.Sender.Id, result.Sender.Id); Assert.Equal(request1.SenderId, result.SenderId); } }
public void Can_Add_Meeting() { //Arrange using (var factory = new SQLiteDbContextFactory()) { //Arrange var organizer = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var meetingToAdd = new Meeting { Title = "TestToAdd", StartDateTime = DateTime.Today.AddDays(1).AddHours(5), EndDateTime = DateTime.Today.AddDays(1).AddHours(8), Organizer = organizer, City = "City", Street = "Street", PostalCode = "PostalCode", Country = Country.Togo, Notes = "notest test notest test" }; //Act // Run the test against one instance of the context using (var context = factory.CreateContext()) { context.Users.Add(organizer); context.SaveChanges(); var meetingRepository = new EFMeetingRepository(context); meetingRepository.SaveMeeting(meetingToAdd); } using (var context = factory.CreateContext()) { var meetings = context.Meetings .Include(m => m.Organizer) .ToList(); var users = context.Users.ToList(); Assert.Single(users); Assert.Single(meetings); Assert.Equal(meetingToAdd.Title, meetings.Single().Title); Assert.Equal(meetingToAdd.StartDateTime, meetings.Single().StartDateTime); Assert.Equal(meetingToAdd.EndDateTime, meetings.Single().EndDateTime); Assert.Equal(meetingToAdd.City, meetings.Single().City); Assert.Equal(meetingToAdd.Street, meetings.Single().Street); Assert.Equal(meetingToAdd.PostalCode, meetings.Single().PostalCode); Assert.Equal(meetingToAdd.Country, meetings.Single().Country); Assert.Equal(meetingToAdd.Notes, meetings.Single().Notes); Assert.NotNull(meetings.Single().Organizer); Assert.Equal(organizer.Id, meetings.Single().Organizer.Id); } } }
public void Can_Get_Message() { //Arrange var result = new Message(); using (var factory = new SQLiteDbContextFactory()) { var author = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var meeting = new Meeting { MeetingId = 1, Title = "Meeting for message" }; var message = new Message { MessageId = 1, Text = "This is a text of the message which is a test message", Author = author, Meeting = meeting, Created = DateTime.Now.AddDays(1) }; using (var context = factory.CreateContext()) { context.Users.Add(author); context.Meetings.Add(meeting); context.SaveChanges(); context.Messages.Add(message); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var messageRepository = new EFMessageRepository(context); result = messageRepository.GetMessage(1); } //Assert using (var context = factory.CreateContext()) { Assert.Equal(1, context.Users.Count()); Assert.Equal(1, context.Meetings.Count()); Assert.Equal(1, context.Messages.Count()); Assert.Equal(message.Text, result.Text); Assert.Equal(message.AuthorId, result.AuthorId); Assert.Equal(message.Created, result.Created); Assert.Equal(message.MeetingId, result.MeetingId); } } }
public void Can_Add_User_To_Meeting() { //Arrange Mock <UserManager <AppUser> > GetMockUserManager() { var userStoreMock = new Mock <IUserStore <AppUser> >(); return(new Mock <UserManager <AppUser> >( userStoreMock.Object, null, null, null, null, null, null, null, null)); } var user = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var meeting = new Meeting { MeetingId = 1, Title = "meeting1" }; using (var factory = new SQLiteDbContextFactory()) { using (var context = factory.CreateContext()) { context.Users.Add(user); context.Meetings.Add(meeting); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var invitedUserRepository = new EFInvitedUserRepository(context, GetMockUserManager().Object); invitedUserRepository.AddUserToMeeting(user.Id, meeting.MeetingId, InvitationStatus.Pending); } //Assert using (var context = factory.CreateContext()) { var invitedUsers = context.MeetingInvitedUser .Include(mi => mi.AppUser) .Include(mi => mi.Meeting) .ToList(); Assert.Single(invitedUsers); Assert.Equal(user.Id, invitedUsers.Single().AppUser.Id); Assert.Equal(user.Id, invitedUsers.Single().UserId); Assert.Equal(meeting.MeetingId, invitedUsers.Single().Meeting.MeetingId); Assert.Equal(meeting.MeetingId, invitedUsers.Single().MeetingId); } } }
public void Can_Add_Message() { //Arrange var author = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var meeting = new Meeting { MeetingId = 1, Title = "Meeting for message" }; var message = new Message { Text = "This is a text of message which is test message", Author = author, Created = DateTime.Now, Meeting = meeting }; using (var factory = new SQLiteDbContextFactory()) { using (var context = factory.CreateContext()) { context.Users.Add(author); context.Meetings.Add(meeting); context.SaveChanges(); //Act var messageRepository = new EFMessageRepository(context); messageRepository.SaveMessage(message); } //Assert using (var context = factory.CreateContext()) { var result = context.Messages .Include(m => m.Author) .Include(m => m.Meeting) .FirstOrDefault(); Assert.Equal(1, context.Users.Count()); Assert.Equal(1, context.Meetings.Count()); Assert.Equal(1, context.Messages.Count()); Assert.Equal(message.Text, result.Text); Assert.Equal(message.AuthorId, result.Author.Id); Assert.Equal(message.Created, result.Created); Assert.Equal(message.MeetingId, result.Meeting.MeetingId); } } }
public void Can_Remove_User_From_Meeting() { //Arrange Mock <UserManager <AppUser> > GetMockUserManager() { var userStoreMock = new Mock <IUserStore <AppUser> >(); return(new Mock <UserManager <AppUser> >( userStoreMock.Object, null, null, null, null, null, null, null, null)); } var user = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var meeting = new Meeting { MeetingId = 1, Title = "meeting1" }; using (var factory = new SQLiteDbContextFactory()) { var invitedUser = new MeetingInvitedUser { Meeting = meeting, AppUser = user, Status = InvitationStatus.Pending }; using (var context = factory.CreateContext()) { context.MeetingInvitedUser.Add(invitedUser); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var invitedUserRepository = new EFInvitedUserRepository(context, GetMockUserManager().Object); invitedUserRepository.RemoveUserFromMeeting(invitedUser.UserId, invitedUser.MeetingId); } //Assert using (var context = factory.CreateContext()) { var invitedUsers = context.MeetingInvitedUser.ToList(); Assert.Empty(invitedUsers); } } }
public void Can_Edit_Notification() { //Arrange using (var factory = new SQLiteDbContextFactory()) { var participant = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var meeting = new Meeting { MeetingId = 1, Organizer = participant, StartDateTime = DateTime.UtcNow.AddDays(1) }; var notificationToEdit = new TomorrowsMeetingsNotification { Participant = participant, Meeting = meeting, MeetingStartDateTime = meeting.StartDateTime, IfSent = false, NumberOfTries = 1, }; using (var context = factory.CreateContext()) { context.Users.Add(participant); context.SaveChanges(); context.Meetings.Add(meeting); context.SaveChanges(); context.TomorrowsMeetingsNotifications.Add(notificationToEdit); context.SaveChanges(); var notificationRepository = new EFTomorrowsMeetingsNotificationRepository(context); notificationToEdit.IfSent = false; notificationRepository.SaveNotification(notificationToEdit); } //Assert using (var context = factory.CreateContext()) { Assert.Equal(1, context.Users.Count()); Assert.Equal(1, context.Meetings.Count()); Assert.Equal(1, context.TomorrowsMeetingsNotifications.Count()); var notification = context.TomorrowsMeetingsNotifications.Single(); Assert.Equal(participant.Id, notification.ParticipantId); Assert.Equal(meeting.MeetingId, notification.MeetingId); Assert.False(notification.IfSent); Assert.Equal(meeting.StartDateTime, notification.MeetingStartDateTime); Assert.Equal(2, notification.NumberOfTries); } } }
public void Can_Remove_Game_From_Meeting() { //Arrange using (var factory = new SQLiteDbContextFactory()) { var game = new Game { GameId = 1, Title = "game1" }; var meeting = new Meeting { MeetingId = 1, Title = "TestToAddGame" }; var gameInMeeting = new MeetingGame { Game = game, Meeting = meeting }; using (var context = factory.CreateContext()) { context.Games.Add(game); context.Meetings.Add(meeting); context.SaveChanges(); context.MeetingGame.Add(gameInMeeting); context.SaveChanges(); //Act var meetingRepository = new EFMeetingRepository(context); meetingRepository.RemoveGameFromMeeting(game.GameId, meeting.MeetingId); } //Assert using (var context = factory.CreateContext()) { var gameInMeetings = context.MeetingGame .Include(mg => mg.Meeting) .Include(mg => mg.Game) .ToList(); Assert.Empty(gameInMeetings); } } }
public void Can_Add_To_Shelf() { //Arrange var user = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var game = new Game { GameId = 1, Title = "game1" }; var shelfItem = new GameAppUser { UserId = "id1", GameId = 1 }; using (var factory = new SQLiteDbContextFactory()) { using (var context = factory.CreateContext()) { context.Users.Add(user); context.Games.Add(game); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var shelfRepository = new EFShelfRepository(context); shelfRepository.AddToShelf(shelfItem); } //Assert using (var context = factory.CreateContext()) { var shelf = context.GameAppUser .Include(gu => gu.AppUser) .Include(gu => gu.Game) .ToList(); Assert.Single(shelf); Assert.Equal(user.Id, shelf.Single().AppUser.Id); Assert.Equal(user.Id, shelf.Single().UserId); Assert.Equal(game.GameId, shelf.Single().Game.GameId); Assert.Equal(game.GameId, shelf.Single().GameId); } } }
public void Can_Edit_Message() { //Arrange var textMessage = "This is a new text of the message."; var author = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var message = new Message { Text = "This is a text of the message which is a test message", Author = author, Created = DateTime.Now.AddDays(1) }; using (var factory = new SQLiteDbContextFactory()) { using (var context = factory.CreateContext()) { context.Users.Add(author); context.Messages.Add(message); context.SaveChanges(); //Act var messageRepository = new EFMessageRepository(context); messageRepository.SaveMessage(new Message { Text = textMessage, MessageId = 1 }); } //Assert using (var context = factory.CreateContext()) { var result = context.Messages .Include(m => m.Author) .FirstOrDefault(); Assert.Equal(1, context.Users.Count()); Assert.Equal(1, context.Messages.Count()); Assert.Equal(textMessage, result.Text); Assert.Equal(message.AuthorId, result.Author.Id); Assert.Equal(message.Created, result.Created); } } }
public void Can_Remove_From_Shelf() { //Arrange var user = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var game = new Game { GameId = 1, Title = "game1" }; var shelfItem = new GameAppUser { UserId = "id1", GameId = 1 }; using (var factory = new SQLiteDbContextFactory()) { using (var context = factory.CreateContext()) { context.Users.Add(user); context.Games.Add(game); context.GameAppUser.Add(shelfItem); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var shelfRepository = new EFShelfRepository(context); shelfRepository.RemoveFromShelf(shelfItem); } //Assert using (var context = factory.CreateContext()) { Assert.Empty(context.GameAppUser); Assert.Single(context.Users); Assert.Single(context.Games); } } }
public void Can_Delete_Message() { //Arrange using (var factory = new SQLiteDbContextFactory()) { var author = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; using (var context = factory.CreateContext()) { context.Users.Add(author); context.SaveChanges(); context.Messages.Add(new Message { MessageId = 1, Text = "This is a text of the message which is a test message", Author = author, Created = DateTime.Now.AddDays(1) }); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var messageRepository = new EFMessageRepository(context); messageRepository.DeleteMessage(1); } //Assert using (var context = factory.CreateContext()) { Assert.Equal(0, context.Messages.Count()); } } }
public void Can_Add_Game() { //Arrange using (var factory = new SQLiteDbContextFactory()) { //Act // Run the test against one instance of the context using (var context = factory.CreateContext()) { var gameRepository = new EFGameRepository(context); gameRepository.SaveGame(new Game { Title = "TestToAdd" }); } //Assert // Use a separate instance of the context to verify correct data was saved to database using (var context = factory.CreateContext()) { Assert.Equal(1, context.Games.Count()); Assert.Equal("TestToAdd", context.Games.Single().Title); } } }
public void Can_Get_Overlapping_Meetings_For_Meeting() { //Arrange using (var factory = new SQLiteDbContextFactory()) { //Arrange var user1 = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "id2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "id3", UserName = "******", Email = "*****@*****.**" }; var user4 = new AppUser { Id = "id4", UserName = "******", Email = "*****@*****.**" }; var user5 = new AppUser { Id = "id5", UserName = "******", Email = "*****@*****.**" }; var meeting1 = new Meeting { MeetingId = 1, Title = "Meeting1", StartDateTime = DateTime.Today.AddDays(3), EndDateTime = DateTime.Today.AddDays(4), Organizer = user1 }; var meeting2 = new Meeting { MeetingId = 2, Title = "Meeting2", StartDateTime = DateTime.Today.AddDays(1), EndDateTime = DateTime.Today.AddDays(1).AddHours(3), Organizer = user3 }; var meeting3 = new Meeting { MeetingId = 3, Title = "Meeting3", StartDateTime = DateTime.Today.AddDays(1), EndDateTime = DateTime.Today.AddDays(1).AddHours(3), Organizer = user3 }; var meeting4 = new Meeting { MeetingId = 4, Title = "Meeting4", StartDateTime = DateTime.Today.AddDays(1), EndDateTime = DateTime.Today.AddDays(1).AddHours(3), Organizer = user4 }; var meeting5 = new Meeting { MeetingId = 5, Title = "Meeting5", StartDateTime = DateTime.Today.AddDays(1), EndDateTime = DateTime.Today.AddDays(1).AddHours(3), Organizer = user5 }; var meeting6 = new Meeting { MeetingId = 6, Title = "Meeting6", StartDateTime = DateTime.Today.AddDays(1), EndDateTime = DateTime.Today.AddDays(1).AddHours(3), Organizer = user2 }; var meeting7 = new Meeting { MeetingId = 7, Title = "Meeting7", StartDateTime = DateTime.Today.AddDays(2).AddHours(1), EndDateTime = DateTime.Today.AddDays(2).AddHours(4), Organizer = user1 }; var meeting8 = new Meeting { MeetingId = 8, Title = "Meeting8", StartDateTime = DateTime.Today.AddDays(-3), EndDateTime = DateTime.Today.AddDays(-2), Organizer = user1 }; var invitedUser1 = new MeetingInvitedUser { Meeting = meeting1, AppUser = user2 }; var invitedUser2 = new MeetingInvitedUser { Meeting = meeting1, AppUser = user3 }; var invitedUser3 = new MeetingInvitedUser { Meeting = meeting2, AppUser = user2 }; var invitedUser4 = new MeetingInvitedUser { Meeting = meeting3, AppUser = user1 }; var invitedUser5 = new MeetingInvitedUser { Meeting = meeting3, AppUser = user4 }; var invitedUser6 = new MeetingInvitedUser { Meeting = meeting4, AppUser = user5 }; var invitedUser7 = new MeetingInvitedUser { Meeting = meeting5, AppUser = user4 }; var invitedUser8 = new MeetingInvitedUser { Meeting = meeting5, AppUser = user1 }; var invitedUser9 = new MeetingInvitedUser { Meeting = meeting6, AppUser = user5 }; var invitedUser10 = new MeetingInvitedUser { Meeting = meeting7, AppUser = user2 }; var expectedResult = new List <Meeting>(); var expectedResultList = new List <Meeting> { meeting2, meeting3, meeting5, meeting6 }; //Act // Run the test against one instance of the context using (var context = factory.CreateContext()) { context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.Users.Add(user4); context.Users.Add(user5); context.SaveChanges(); context.Meetings.Add(meeting1); context.Meetings.Add(meeting2); context.Meetings.Add(meeting3); context.Meetings.Add(meeting4); context.Meetings.Add(meeting5); context.Meetings.Add(meeting6); context.Meetings.Add(meeting7); context.Meetings.Add(meeting8); context.SaveChanges(); context.MeetingInvitedUser.Add(invitedUser1); context.MeetingInvitedUser.Add(invitedUser2); context.MeetingInvitedUser.Add(invitedUser3); context.MeetingInvitedUser.Add(invitedUser4); context.MeetingInvitedUser.Add(invitedUser5); context.MeetingInvitedUser.Add(invitedUser6); context.MeetingInvitedUser.Add(invitedUser7); context.MeetingInvitedUser.Add(invitedUser8); context.MeetingInvitedUser.Add(invitedUser9); context.MeetingInvitedUser.Add(invitedUser10); context.SaveChanges(); var meetingRepository = new EFMeetingRepository(context); expectedResult = meetingRepository.GetOverlappingMeetingsForMeeting(DateTime.Today.AddDays(1), DateTime.Today.AddDays(2), 1).ToList(); } using (var context = factory.CreateContext()) { var meetings = context.Meetings .Include(m => m.Organizer) .Include(m => m.MeetingInvitedUser) .ToList(); var users = context.Users.ToList(); var invitedUsers = context.MeetingInvitedUser.ToList(); Assert.Equal(5, users.Count); Assert.Equal(8, meetings.Count); Assert.Equal(10, invitedUsers.Count); Assert.Equal(4, expectedResult.Count); Assert.Equal(expectedResult.OrderBy(m => m.MeetingId), expectedResultList.OrderBy(m => m.MeetingId)); } } }
public void Can_Change_Status() { //Arrange using var factory = new SQLiteDbContextFactory(); //Arrange var user1 = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "id2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "id3", UserName = "******", Email = "*****@*****.**" }; var user4 = new AppUser { Id = "id4", UserName = "******", Email = "*****@*****.**" }; var request1 = new FriendInvitation { FriendInvitationId = 1, Sender = user1, Invited = user2, InvitedEmail = user2.Email, Status = FriendInvitationStatus.Pending }; var request2 = new FriendInvitation { FriendInvitationId = 2, Sender = user3, InvitedEmail = "*****@*****.**", Status = FriendInvitationStatus.Pending }; //Act using (var context = factory.CreateContext()) { context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.Users.Add(user4); context.SaveChanges(); context.FriendInvitations.Add(request1); context.FriendInvitations.Add(request2); context.SaveChanges(); var friendInvitationRepository = new EFFriendInvitationRepository(context); friendInvitationRepository.ChangeStatus(request1.FriendInvitationId, FriendInvitationStatus.Accepted, user2); friendInvitationRepository.ChangeStatus(request2.FriendInvitationId, FriendInvitationStatus.Rejected, user4); } using (var context = factory.CreateContext()) { var invitations = context.FriendInvitations .Include(i => i.Invited) .Include(i => i.Sender) .OrderBy(i => i.FriendInvitationId).ToList(); Assert.Equal(4, context.Users.Count()); Assert.Equal(2, context.FriendInvitations.Count()); Assert.Equal(request1.FriendInvitationId, invitations[0].FriendInvitationId); Assert.Equal(request2.FriendInvitationId, invitations[1].FriendInvitationId); Assert.Equal(FriendInvitationStatus.Accepted, invitations[0].Status); Assert.Equal(FriendInvitationStatus.Rejected, invitations[1].Status); Assert.Equal(request1.Sender.Id, invitations[0].SenderId); Assert.Equal(request2.Sender.Id, invitations[1].SenderId); Assert.Equal(request1.Invited.Id, invitations[0].InvitedId); Assert.Equal(user4.Id, invitations[1].InvitedId); Assert.Equal(request1.InvitedEmail, invitations[0].InvitedEmail); Assert.Equal(user4.Email, invitations[1].InvitedEmail); } }
public void Can_Add_Invitation() { //Arrange using var factory = new SQLiteDbContextFactory(); //Arrange var user1 = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "id2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "id3", UserName = "******", Email = "*****@*****.**" }; var request1ToAdd = new FriendInvitation { FriendInvitationId = 1, Sender = user1, Invited = user2, InvitedEmail = user2.Email }; var request2ToAdd = new FriendInvitation { FriendInvitationId = 2, Sender = user3, InvitedEmail = "*****@*****.**" }; //Act using (var context = factory.CreateContext()) { context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.SaveChanges(); var friendInvitationRepository = new EFFriendInvitationRepository(context); friendInvitationRepository.AddInvitation(request1ToAdd); friendInvitationRepository.AddInvitation(request2ToAdd); } using (var context = factory.CreateContext()) { var invitations = context.FriendInvitations .Include(i => i.Invited) .Include(i => i.Sender) .OrderBy(i => i.FriendInvitationId).ToList(); Assert.Equal(3, context.Users.Count()); Assert.Equal(2, context.FriendInvitations.Count()); Assert.Equal(request1ToAdd.FriendInvitationId, invitations[0].FriendInvitationId); Assert.Equal(request2ToAdd.FriendInvitationId, invitations[1].FriendInvitationId); Assert.Equal(FriendInvitationStatus.Pending, invitations[0].Status); Assert.Equal(FriendInvitationStatus.Pending, invitations[1].Status); Assert.Equal(request1ToAdd.Sender.Id, invitations[0].SenderId); Assert.Equal(request2ToAdd.Sender.Id, invitations[1].SenderId); Assert.Equal(request1ToAdd.Invited.Id, invitations[0].InvitedId); Assert.Null(invitations[1].InvitedId); Assert.Equal(request1ToAdd.InvitedEmail, invitations[0].InvitedEmail); Assert.Equal("*****@*****.**", invitations[1].InvitedEmail); } }
public void Can_Get_Invitations_Received_By_CurrentUser() { //Arrange var user1 = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "id2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "id3", UserName = "******", Email = "*****@*****.**" }; var user4 = new AppUser { Id = "id4", UserName = "******", Email = "*****@*****.**" }; var user5 = new AppUser { Id = "id5", UserName = "******", Email = "*****@*****.**" }; var request1 = new FriendInvitation { FriendInvitationId = 1, Sender = user1, Status = FriendInvitationStatus.Pending, Invited = user3, InvitedEmail = user3.Email }; var request2 = new FriendInvitation { FriendInvitationId = 2, Sender = user4, Status = FriendInvitationStatus.Rejected, Invited = user1, InvitedEmail = user1.Email }; var request3 = new FriendInvitation { FriendInvitationId = 3, Sender = user1, Status = FriendInvitationStatus.Pending, InvitedEmail = "*****@*****.**" }; var request4 = new FriendInvitation { FriendInvitationId = 4, Sender = user1, Status = FriendInvitationStatus.Accepted, Invited = user2, InvitedEmail = user2.Email }; var request5 = new FriendInvitation { FriendInvitationId = 5, Sender = user5, Status = FriendInvitationStatus.Accepted, Invited = user1, InvitedEmail = user1.Email }; using var factory = new SQLiteDbContextFactory(); using (var context = factory.CreateContext()) { context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.Users.Add(user4); context.Users.Add(user5); context.FriendInvitations.Add(request1); context.FriendInvitations.Add(request2); context.FriendInvitations.Add(request3); context.FriendInvitations.Add(request4); context.FriendInvitations.Add(request5); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var friendInvitationRepository = new EFFriendInvitationRepository(context); var result1 = friendInvitationRepository.GetInvitationsReceivedByCurrentUser(user1.Email) .OrderBy(i => i.FriendInvitationId).ToList(); var result2 = friendInvitationRepository.GetInvitationsReceivedByCurrentUser(user3.Email) .OrderBy(i => i.FriendInvitationId).ToList(); var result3 = friendInvitationRepository.GetInvitationsReceivedByCurrentUser(user5.Email) .OrderBy(i => i.FriendInvitationId).ToList(); Assert.Equal(5, context.Users.Count()); Assert.Equal(5, context.FriendInvitations.Count()); Assert.Equal(3, result1.Count); Assert.Equal(request2.FriendInvitationId, result1[0].FriendInvitationId); Assert.Equal(request3.FriendInvitationId, result1[1].FriendInvitationId); Assert.Equal(request5.FriendInvitationId, result1[2].FriendInvitationId); Assert.Single(result2); Assert.Equal(request1.FriendInvitationId, result2[0].FriendInvitationId); Assert.Empty(result3); } }
public void Can_Get_Available_Users() { //Arrange var user1 = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "id2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "id3", UserName = "******", Email = "*****@*****.**" }; var user4 = new AppUser { Id = "id4", UserName = "******", Email = "*****@*****.**" }; var user5 = new AppUser { Id = "id5", UserName = "******", Email = "*****@*****.**" }; var user6 = new AppUser { Id = "id6", UserName = "******", Email = "*****@*****.**" }; var meeting1 = new Meeting { MeetingId = 1, Title = "meeting1", Organizer = user1 }; var meeting2 = new Meeting { MeetingId = 2, Title = "meeting2", Organizer = user4 }; var result = new List <AppUser>(); using (var factory = new SQLiteDbContextFactory()) { var invitedUser1 = new MeetingInvitedUser { Meeting = meeting1, AppUser = user2, Status = InvitationStatus.Pending }; var invitedUser2 = new MeetingInvitedUser { Meeting = meeting1, AppUser = user3, Status = InvitationStatus.Accepted }; var invitedUser3 = new MeetingInvitedUser { Meeting = meeting2, AppUser = user5, Status = InvitationStatus.Rejected }; using (var context = factory.CreateContext()) { context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.Users.Add(user4); context.Users.Add(user5); context.Users.Add(user6); context.SaveChanges(); context.Meetings.Add(meeting1); context.Meetings.Add(meeting2); context.SaveChanges(); context.MeetingInvitedUser.Add(invitedUser1); context.MeetingInvitedUser.Add(invitedUser2); context.MeetingInvitedUser.Add(invitedUser3); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var invitedUserRepository = new EFInvitedUserRepository(context); result = invitedUserRepository.GetAvailableUsers(meeting1.MeetingId).OrderBy(u => u.UserName) .ToList(); //Assert Assert.Equal(6, context.Users.Count()); Assert.Equal(2, context.Meetings.Count()); Assert.Equal(3, context.MeetingInvitedUser.Count()); Assert.Equal(3, result.Count); Assert.Equal(user4.Email, result[0].Email); Assert.Equal(user5.Email, result[1].Email); Assert.Equal(user6.Email, result[2].Email); } } }
public void Can_Get_Notification() { //Arrange using (var factory = new SQLiteDbContextFactory()) { var participant1 = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var participant2 = new AppUser { Id = "id2", UserName = "******", Email = "*****@*****.**" }; var meeting1 = new Meeting { MeetingId = 1, Organizer = participant1, StartDateTime = DateTime.UtcNow.AddDays(1) }; var meeting2 = new Meeting { MeetingId = 2, Organizer = participant2, StartDateTime = DateTime.UtcNow.AddDays(2) }; var result1 = new TomorrowsMeetingsNotification(); var result2 = new TomorrowsMeetingsNotification(); var result3 = new TomorrowsMeetingsNotification(); var result4 = new TomorrowsMeetingsNotification(); var notification1 = new TomorrowsMeetingsNotification { Meeting = meeting1, Participant = participant1, IfSent = true, MeetingStartDateTime = meeting1.StartDateTime, NumberOfTries = 1 }; //Act using (var context = factory.CreateContext()) { context.Users.Add(participant1); context.Users.Add(participant2); context.SaveChanges(); context.Meetings.Add(meeting1); context.Meetings.Add(meeting2); context.SaveChanges(); context.TomorrowsMeetingsNotifications.Add(notification1); context.SaveChanges(); var notificationRepository = new EFTomorrowsMeetingsNotificationRepository(context); result1 = notificationRepository.GetNotification(meeting1.MeetingId, participant1.Id, meeting1.StartDateTime); result2 = notificationRepository.GetNotification(meeting1.MeetingId, participant2.Id, meeting1.StartDateTime); result3 = notificationRepository.GetNotification(meeting2.MeetingId, participant1.Id, meeting1.StartDateTime); result4 = notificationRepository.GetNotification(meeting2.MeetingId, participant1.Id, meeting2.StartDateTime); } //Assert using (var context = factory.CreateContext()) { Assert.Equal(2, context.Users.Count()); Assert.Equal(2, context.Meetings.Count()); Assert.Equal(1, context.TomorrowsMeetingsNotifications.Count()); Assert.Equal(notification1, result1); Assert.Null(result2); Assert.Null(result3); Assert.Null(result4); } } }
public void Can_Change_Status() { //Arrange var user = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var meeting = new Meeting { MeetingId = 1, Title = "meeting1" }; using (var factory = new SQLiteDbContextFactory()) { var invitedUser = new MeetingInvitedUser { Meeting = meeting, AppUser = user, Status = InvitationStatus.Pending }; using (var context = factory.CreateContext()) { context.MeetingInvitedUser.Add(invitedUser); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var invitedUserRepository = new EFInvitedUserRepository(context); invitedUserRepository.ChangeStatus(invitedUser.UserId, invitedUser.MeetingId, InvitationStatus.Accepted); } //Assert using (var context = factory.CreateContext()) { var invitedUsers = context.MeetingInvitedUser.ToList(); Assert.Equal(InvitationStatus.Accepted, invitedUsers.Single().Status); } //Act using (var context = factory.CreateContext()) { var invitedUserRepository = new EFInvitedUserRepository(context); invitedUserRepository.ChangeStatus(invitedUser.UserId, invitedUser.MeetingId, InvitationStatus.Rejected); } //Assert using (var context = factory.CreateContext()) { var invitedUsers = context.MeetingInvitedUser.ToList(); Assert.Equal(InvitationStatus.Rejected, invitedUsers.Single().Status); } //Act using (var context = factory.CreateContext()) { var invitedUserRepository = new EFInvitedUserRepository(context); invitedUserRepository.ChangeStatus(invitedUser.UserId, invitedUser.MeetingId, InvitationStatus.Cancelled); } //Assert using (var context = factory.CreateContext()) { var invitedUsers = context.MeetingInvitedUser.ToList(); Assert.Equal(InvitationStatus.Cancelled, invitedUsers.Single().Status); } } }
public void Can_Get_Invited_Users_List() { //Arrange var user1 = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "id2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "id3", UserName = "******", Email = "*****@*****.**" }; var user4 = new AppUser { Id = "id4", UserName = "******", Email = "*****@*****.**" }; var user5 = new AppUser { Id = "id5", UserName = "******", Email = "*****@*****.**" }; var meeting = new Meeting { MeetingId = 1, Title = "meeting1" }; var result = new List <MeetingInvitedUser>(); using (var factory = new SQLiteDbContextFactory()) { var invitedUser1 = new MeetingInvitedUser { Meeting = meeting, AppUser = user1, Status = InvitationStatus.Pending }; var invitedUser2 = new MeetingInvitedUser { Meeting = meeting, AppUser = user2, Status = InvitationStatus.Accepted }; var invitedUser3 = new MeetingInvitedUser { Meeting = meeting, AppUser = user3, Status = InvitationStatus.Rejected }; var invitedUser4 = new MeetingInvitedUser { Meeting = meeting, AppUser = user4, Status = InvitationStatus.Cancelled }; var invitedUser5 = new MeetingInvitedUser { Meeting = meeting, AppUser = user5, Status = InvitationStatus.Pending }; using (var context = factory.CreateContext()) { context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.Users.Add(user4); context.Users.Add(user5); context.Meetings.Add(meeting); context.MeetingInvitedUser.Add(invitedUser1); context.MeetingInvitedUser.Add(invitedUser2); context.MeetingInvitedUser.Add(invitedUser3); context.MeetingInvitedUser.Add(invitedUser4); context.MeetingInvitedUser.Add(invitedUser5); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var invitedUserRepository = new EFInvitedUserRepository(context); result = invitedUserRepository.GetInvitedUsersList(meeting.MeetingId).OrderBy(mu => mu.UserId) .ToList(); Assert.Equal(5, result.Count); Assert.Equal(InvitationStatus.Pending, result[0].Status); Assert.Equal(InvitationStatus.Accepted, result[1].Status); Assert.Equal(InvitationStatus.Rejected, result[2].Status); Assert.Equal(InvitationStatus.Cancelled, result[3].Status); Assert.Equal(InvitationStatus.Pending, result[4].Status); } } }
public void Can_Get_Users_Emails_For_Notification() { //Arrange using (var factory = new SQLiteDbContextFactory()) { using (var context = factory.CreateContext()) { var user1 = new AppUser { Id = "1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "3", UserName = "******", Email = "*****@*****.**" }; var user4 = new AppUser { Id = "4", UserName = "******", Email = "*****@*****.**" }; context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.Users.Add(user4); context.SaveChanges(); var meeting1 = new Meeting { Title = "Meeting1", Organizer = user1 }; var meeting2 = new Meeting { Title = "Meeting2", Organizer = user2 }; var meeting3 = new Meeting { Title = "Meeting3", Organizer = user3 }; var meeting4 = new Meeting { Title = "Meeting4", Organizer = user4 }; context.Meetings.Add(meeting1); context.Meetings.Add(meeting2); context.Meetings.Add(meeting3); context.Meetings.Add(meeting4); context.SaveChanges(); var invitedUsers1 = new MeetingInvitedUser { Meeting = meeting1, AppUser = user2 }; var invitedUsers2 = new MeetingInvitedUser { Meeting = meeting1, AppUser = user3 }; var invitedUsers3 = new MeetingInvitedUser { Meeting = meeting1, AppUser = user4 }; var invitedUsers4 = new MeetingInvitedUser { Meeting = meeting2, AppUser = user1 }; var invitedUsers5 = new MeetingInvitedUser { Meeting = meeting2, AppUser = user4 }; var invitedUsers6 = new MeetingInvitedUser { Meeting = meeting3, AppUser = user4 }; context.MeetingInvitedUser.Add(invitedUsers1); context.MeetingInvitedUser.Add(invitedUsers2); context.MeetingInvitedUser.Add(invitedUsers3); context.MeetingInvitedUser.Add(invitedUsers4); context.MeetingInvitedUser.Add(invitedUsers5); context.MeetingInvitedUser.Add(invitedUsers6); context.SaveChanges(); //Act var invitedUserRepository = new EFInvitedUserRepository(context); var result1 = invitedUserRepository.GetUsersEmailsForNotification(meeting1.MeetingId, user1.Id) .OrderBy(s => s).ToList(); var list1 = new List <string> { user2.Email, user3.Email, user4.Email }; var result2 = invitedUserRepository.GetUsersEmailsForNotification(meeting2.MeetingId, user4.Id) .OrderBy(s => s) .ToList(); var list2 = new List <string> { user1.Email, user2.Email }; var result3 = invitedUserRepository.GetUsersEmailsForNotification(meeting3.MeetingId, user3.Id) .ToList(); var list3 = new List <string> { user4.Email }; var result4 = invitedUserRepository.GetUsersEmailsForNotification(meeting4.MeetingId, user4.Id) .ToList(); //Assert Assert.Equal(4, context.Meetings.Count()); Assert.Equal(4, context.Users.Count()); Assert.Equal(6, context.MeetingInvitedUser.Count()); Assert.Equal(3, result1.Count); Assert.Equal(list1.OrderBy(s => s), result1); Assert.Equal(2, result2.Count()); Assert.Equal(list2.OrderBy(s => s), result2); Assert.Single(result3); Assert.Equal(list3, result3); Assert.Empty(result4); } } }
public void Can_Get_Invited_Users_List() { //Arrange Mock <UserManager <AppUser> > GetMockUserManager() { var userStoreMock = new Mock <IUserStore <AppUser> >(); return(new Mock <UserManager <AppUser> >( userStoreMock.Object, null, null, null, null, null, null, null, null)); } var user1 = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "id2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "id3", UserName = "******", Email = "*****@*****.**" }; var user4 = new AppUser { Id = "id4", UserName = "******", Email = "*****@*****.**" }; var user5 = new AppUser { Id = "id5", UserName = "******", Email = "*****@*****.**" }; var meeting = new Meeting { MeetingId = 1, Title = "meeting1" }; var result = new Dictionary <string, InvitationStatus>(); using (var factory = new SQLiteDbContextFactory()) { var invitedUser1 = new MeetingInvitedUser { Meeting = meeting, AppUser = user1, Status = InvitationStatus.Pending }; var invitedUser2 = new MeetingInvitedUser { Meeting = meeting, AppUser = user2, Status = InvitationStatus.Accepted }; var invitedUser3 = new MeetingInvitedUser { Meeting = meeting, AppUser = user3, Status = InvitationStatus.Rejected }; var invitedUser4 = new MeetingInvitedUser { Meeting = meeting, AppUser = user4, Status = InvitationStatus.Cancelled }; var invitedUser5 = new MeetingInvitedUser { Meeting = meeting, AppUser = user5, Status = InvitationStatus.Pending }; using (var context = factory.CreateContext()) { context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.Users.Add(user4); context.Users.Add(user5); context.Meetings.Add(meeting); context.MeetingInvitedUser.Add(invitedUser1); context.MeetingInvitedUser.Add(invitedUser2); context.MeetingInvitedUser.Add(invitedUser3); context.MeetingInvitedUser.Add(invitedUser4); context.MeetingInvitedUser.Add(invitedUser5); context.SaveChanges(); } //Act using (var context = factory.CreateContext()) { var invitedUserRepository = new EFInvitedUserRepository(context, GetMockUserManager().Object); result = invitedUserRepository.GetInvitedUsersList(meeting.MeetingId); Assert.Equal(5, result.Count); Assert.Equal(InvitationStatus.Pending, result["id1"]); Assert.Equal(InvitationStatus.Accepted, result["id2"]); Assert.Equal(InvitationStatus.Rejected, result["id3"]); Assert.Equal(InvitationStatus.Cancelled, result["id4"]); Assert.Equal(InvitationStatus.Pending, result["id5"]); } } }
public void Can_See_Meetings_By_User() { //Arrange using (var factory = new SQLiteDbContextFactory()) { using (var context = factory.CreateContext()) { var user1 = new AppUser { Id = "1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "3", UserName = "******", Email = "*****@*****.**" }; context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.SaveChanges(); var meeting1 = new Meeting { Title = "Meeting1", Organizer = user1 }; var meeting2 = new Meeting { Title = "Meeting2", Organizer = user1 }; var meeting3 = new Meeting { Title = "Meeting3", Organizer = user2 }; context.Meetings.Add(meeting1); context.Meetings.Add(meeting2); context.Meetings.Add(meeting3); context.SaveChanges(); var invitedUsers1 = new MeetingInvitedUser { Meeting = meeting1, AppUser = user3 }; var invitedUsers2 = new MeetingInvitedUser { Meeting = meeting1, AppUser = user2 }; var invitedUsers3 = new MeetingInvitedUser { Meeting = meeting2, AppUser = user2 }; context.MeetingInvitedUser.Add(invitedUsers1); context.MeetingInvitedUser.Add(invitedUsers2); context.MeetingInvitedUser.Add(invitedUsers3); context.SaveChanges(); //Act var meetingRepository = new EFMeetingRepository(context); var result1 = meetingRepository.GetMeetingsForUser(user1.Id).ToList(); var list1 = new List <Meeting> { meeting1, meeting2 }; var result2 = meetingRepository.GetMeetingsForUser(user2.Id).ToList(); var list2 = new List <Meeting> { meeting1, meeting2, meeting3 }; var result3 = meetingRepository.GetMeetingsForUser(user3.Id).ToList(); var list3 = new List <Meeting> { meeting1 }; //Assert Assert.Equal(3, context.Meetings.Count()); Assert.Equal(3, context.Users.Count()); Assert.Equal(3, context.MeetingInvitedUser.Count()); Assert.Equal(2, result1.Count); Assert.Equal(result1.OrderBy(m => m.Title), list1.OrderBy(m => m.Title)); Assert.Equal(3, result2.Count); Assert.Equal(result2.OrderBy(m => m.Title), list2.OrderBy(m => m.Title)); Assert.Single(result3); Assert.Equal(result3, list3); } } }
public void Can_Get_Conflicted_Meetings() { //Arrange using (var factory = new SQLiteDbContextFactory()) { var meeting1 = new Meeting { MeetingId = 1, Title = "Meeting1", StartDateTime = DateTime.Now.AddDays(-2).ToUniversalTime(), EndDateTime = DateTime.Now.AddDays(-1).ToUniversalTime() }; var meeting2 = new Meeting { MeetingId = 2, Title = "Meeting2", StartDateTime = DateTime.Now.AddHours(-6).ToUniversalTime(), EndDateTime = DateTime.Now.AddHours(-1).AddMinutes(1).ToUniversalTime() }; var meeting3 = new Meeting { MeetingId = 3, Title = "Meeting3", StartDateTime = DateTime.Now.AddHours(-5).ToUniversalTime(), EndDateTime = DateTime.Now.AddMinutes(1).ToUniversalTime() }; var meeting4 = new Meeting { MeetingId = 4, Title = "Meeting4", StartDateTime = DateTime.Now.AddHours(-1).ToUniversalTime(), EndDateTime = DateTime.Now.AddHours(2).ToUniversalTime() }; var meeting5 = new Meeting { MeetingId = 5, Title = "Meeting5", StartDateTime = DateTime.Now.ToUniversalTime(), EndDateTime = DateTime.Now.AddHours(2).ToUniversalTime() }; var meeting6 = new Meeting { MeetingId = 6, Title = "Meeting6", StartDateTime = DateTime.Now.AddHours(1).ToUniversalTime(), EndDateTime = DateTime.Now.AddHours(3).ToUniversalTime() }; var meeting7 = new Meeting { MeetingId = 7, Title = "Meeting7", StartDateTime = DateTime.Now.AddHours(6).ToUniversalTime(), EndDateTime = DateTime.Now.AddHours(23).ToUniversalTime() }; var meeting8 = new Meeting { MeetingId = 8, Title = "Meeting8", StartDateTime = DateTime.Now.AddHours(24).ToUniversalTime(), EndDateTime = DateTime.Now.AddHours(30).ToUniversalTime() }; var list = new List <Meeting> { meeting1, meeting2, meeting3, meeting4, meeting5, meeting6, meeting7, meeting8 }.AsQueryable(); var result1 = new List <Meeting>(); var resultList1 = new List <Meeting> { meeting3, meeting4, meeting5, meeting6 }; var result2 = new List <Meeting>(); var resultList2 = new List <Meeting> { meeting2, meeting3, meeting4, meeting5, meeting6 }; var result3 = new List <Meeting>(); var result4 = new List <Meeting>(); var resultList4 = new List <Meeting> { meeting6, meeting7, meeting8 }; var result5 = new List <Meeting>(); //Act using (var context = factory.CreateContext()) { var meetingRepository = new EFMeetingRepository(context); result1 = meetingRepository.GetOverlappingMeetings(list, DateTime.Now.ToUniversalTime(), DateTime.Now.AddHours(1).ToUniversalTime()).ToList(); result2 = meetingRepository.GetOverlappingMeetings(list, DateTime.Now.AddHours(-1).ToUniversalTime(), DateTime.Now.AddHours(3).ToUniversalTime()).ToList(); result3 = meetingRepository.GetOverlappingMeetings(list, DateTime.Now.AddHours(-4).ToUniversalTime(), DateTime.Now.AddHours(4).ToUniversalTime()).ToList(); result4 = meetingRepository.GetOverlappingMeetings(list, DateTime.Now.AddHours(2).ToUniversalTime(), DateTime.Now.AddDays(1).ToUniversalTime()).ToList(); result5 = meetingRepository.GetOverlappingMeetings(list, DateTime.Now.AddDays(2).ToUniversalTime(), DateTime.Now.AddDays(3).ToUniversalTime()).ToList(); } //Assert Assert.Equal(4, result1.Count); Assert.Equal(resultList1.OrderBy(m => m.MeetingId), result1.OrderBy(m => m.MeetingId)); Assert.Equal(5, result2.Count); Assert.Equal(resultList2.OrderBy(m => m.MeetingId), result2.OrderBy(m => m.MeetingId)); Assert.Equal(5, result3.Count); Assert.Equal(resultList2.OrderBy(m => m.MeetingId), result3.OrderBy(m => m.MeetingId)); Assert.Equal(3, result4.Count); Assert.Equal(resultList4.OrderBy(m => m.MeetingId), result4.OrderBy(m => m.MeetingId)); Assert.Empty(result5); } }
public void Can_Check_If_Invitation_Was_Received_By_Current_User() { //Arrange using var factory = new SQLiteDbContextFactory(); //Arrange var user1 = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "id2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "id3", UserName = "******", Email = "*****@*****.**" }; var request1 = new FriendInvitation { FriendInvitationId = 1, Sender = user1, InvitedEmail = "*****@*****.**", Status = FriendInvitationStatus.Pending }; var request2 = new FriendInvitation { FriendInvitationId = 2, Sender = user1, InvitedEmail = "*****@*****.**", Status = FriendInvitationStatus.Rejected }; var request3 = new FriendInvitation { FriendInvitationId = 3, Sender = user3, InvitedEmail = "*****@*****.**", Status = FriendInvitationStatus.Accepted }; var request4 = new FriendInvitation { FriendInvitationId = 4, Sender = user2, Invited = user1, InvitedEmail = user1.Email, Status = FriendInvitationStatus.Pending }; bool result; //Act using (var context = factory.CreateContext()) { context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.SaveChanges(); context.FriendInvitations.Add(request1); context.FriendInvitations.Add(request2); context.FriendInvitations.Add(request3); context.FriendInvitations.Add(request4); context.SaveChanges(); var friendInvitationRepository = new EFFriendInvitationRepository(context); result = friendInvitationRepository.IfInvitationWasReceivedByCurrentUser(user1.Id, "*****@*****.**"); } using (var context = factory.CreateContext()) { Assert.Equal(3, context.Users.Count()); Assert.Equal(4, context.FriendInvitations.Count()); Assert.True(result); } }
public void Can_Get_Number_Of_Pending_Invitations_For_CurrentUser() { //Arrange using var factory = new SQLiteDbContextFactory(); //Arrange var user1 = new AppUser { Id = "id1", UserName = "******", Email = "*****@*****.**" }; var user2 = new AppUser { Id = "id2", UserName = "******", Email = "*****@*****.**" }; var user3 = new AppUser { Id = "id3", UserName = "******", Email = "*****@*****.**" }; var user4 = new AppUser { Id = "id4", UserName = "******", Email = "*****@*****.**" }; var request1 = new FriendInvitation { FriendInvitationId = 1, Sender = user1, Invited = user2, Status = FriendInvitationStatus.Pending }; var request2 = new FriendInvitation { FriendInvitationId = 2, Sender = user3, Invited = user2, Status = FriendInvitationStatus.Rejected }; var request3 = new FriendInvitation { FriendInvitationId = 3, Sender = user4, Invited = user2, Status = FriendInvitationStatus.Accepted }; var request4 = new FriendInvitation { FriendInvitationId = 4, Sender = user1, Invited = user3, Status = FriendInvitationStatus.Pending }; var request5 = new FriendInvitation { FriendInvitationId = 5, Sender = user2, Invited = user3, Status = FriendInvitationStatus.Pending }; int result1; int result2; int result3; //Act using (var context = factory.CreateContext()) { context.Users.Add(user1); context.Users.Add(user2); context.Users.Add(user3); context.Users.Add(user4); context.SaveChanges(); context.FriendInvitations.Add(request1); context.FriendInvitations.Add(request2); context.FriendInvitations.Add(request3); context.FriendInvitations.Add(request4); context.FriendInvitations.Add(request5); context.SaveChanges(); var friendInvitationRepository = new EFFriendInvitationRepository(context); result1 = friendInvitationRepository.GetNumberOfPendingInvitationsForCurrentUser(user1.UserName); result2 = friendInvitationRepository.GetNumberOfPendingInvitationsForCurrentUser(user2.UserName); result3 = friendInvitationRepository.GetNumberOfPendingInvitationsForCurrentUser(user3.UserName); } using (var context = factory.CreateContext()) { Assert.Equal(4, context.Users.Count()); Assert.Equal(5, context.FriendInvitations.Count()); Assert.Equal(0, result1); Assert.Equal(1, result2); Assert.Equal(2, result3); } }
public void Can_Edit_Meeting() { //Arrange using (var factory = new SQLiteDbContextFactory()) { var organizer1 = new AppUser { Id = "1", UserName = "******", Email = "*****@*****.**" }; var organizer2 = new AppUser { Id = "2", UserName = "******", Email = "*****@*****.**" }; var meetingToEdit = new Meeting { MeetingId = 1, Title = "TestToEdit", StartDateTime = DateTime.Today.AddDays(2).AddHours(2), EndDateTime = DateTime.Today.AddDays(2).AddHours(4), Organizer = organizer2, City = "City2", Street = "Street2", PostalCode = "PostalCode2", Country = Country.None, Notes = "Notes2" }; using (var context = factory.CreateContext()) { context.Users.Add(organizer1); context.Users.Add(organizer2); context.SaveChanges(); context.Meetings.Add(new Meeting { MeetingId = 1, Title = "TestToAdd", StartDateTime = DateTime.Today.AddDays(1).AddHours(5), EndDateTime = DateTime.Today.AddDays(1).AddHours(8), Organizer = organizer1, City = "City", Street = "Street", PostalCode = "PostalCode", Country = Country.Togo, Notes = "Notes" }); context.SaveChanges(); //Act var meetingRepository = new EFMeetingRepository(context); meetingRepository.SaveMeeting(meetingToEdit); } //Assert using (var context = factory.CreateContext()) { var meetings = context.Meetings .Include(m => m.Organizer) .ToList(); var users = context.Users.ToList(); Assert.Equal(2, users.Count); Assert.Single(meetings); Assert.Equal(meetingToEdit.Title, meetings.Single().Title); Assert.Equal(meetingToEdit.StartDateTime, meetings.Single().StartDateTime); Assert.Equal(meetingToEdit.EndDateTime, meetings.Single().EndDateTime); Assert.Equal(meetingToEdit.City, meetings.Single().City); Assert.Equal(meetingToEdit.Street, meetings.Single().Street); Assert.Equal(meetingToEdit.PostalCode, meetings.Single().PostalCode); Assert.Equal(meetingToEdit.Country, meetings.Single().Country); Assert.NotNull(meetings.Single().Organizer); Assert.Equal(organizer2.Id, meetings.Single().Organizer.Id); Assert.Equal(meetingToEdit.Notes, meetings.Single().Notes); } } }