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