public async Task ModelIsCreated() { var context = ServiceProvider.GetService <AllReadyContext>(); var sut = new EditCampaignCommandHandlerAsync(context); var actual = await sut.Handle(new EditCampaignCommandAsync { Campaign = new CampaignSummaryViewModel { TimeZoneId = "Eastern Standard Time" } }); Assert.NotEqual(0, actual); }
public async Task AddNewCampaign() { // Arrange var handler = new EditCampaignCommandHandlerAsync(Context); var newCampaign = new CampaignSummaryViewModel { Name = "New", Description = "Desc", TimeZoneId = "UTC" }; // Act var result = await handler.Handle(new EditCampaignCommandAsync { Campaign = newCampaign }); // Assert Assert.Equal(5, Context.Campaigns.Count()); Assert.True(result > 0); }
public async Task CampaignDoesNotExist() { var context = ServiceProvider.GetService <AllReadyContext>(); var vm = new CampaignSummaryViewModel { TimeZoneId = "Eastern Standard Time" }; var query = new EditCampaignCommandAsync { Campaign = vm }; var handler = new EditCampaignCommandHandlerAsync(context); var result = await handler.Handle(query); Assert.True(result > 0); var data = context.Campaigns.Count(_ => _.Id == result); Assert.True(data == 1); }
public async Task UpdatingExistingCampaignWithNoPriorContactAddsContactWithAllProperties() { // Arrange var name = "New Name"; var desc = "New Desc"; var org = 2; var contactEmail = "*****@*****.**"; var firstname = "John"; var lastname = "Doe"; var telephone = "01323 111111"; var handler = new EditCampaignCommandHandlerAsync(Context); var updatedCampaign = new CampaignSummaryViewModel { Id = 2, Name = name, Description = desc, OrganizationId = org, TimeZoneId = "GMT Standard Time", PrimaryContactEmail = contactEmail, PrimaryContactFirstName = firstname, PrimaryContactLastName = lastname, PrimaryContactPhoneNumber = telephone }; // Act await handler.Handle(new EditCampaignCommandAsync { Campaign = updatedCampaign }); var newContact = Context.Contacts.OrderBy(c => c.Id).LastOrDefault(); // Assert Assert.Equal(2, Context.CampaignContacts.Count()); Assert.Equal(2, Context.Contacts.Count()); Assert.NotNull(newContact); Assert.Equal(contactEmail, newContact.Email); Assert.Equal(firstname, newContact.FirstName); Assert.Equal(lastname, newContact.LastName); Assert.Equal(telephone, newContact.PhoneNumber); }
public async Task UpdatingExistingCampaignUpdatesAllCoreProperties() { // Arrange var name = "New Name"; var desc = "New Desc"; var fullDesc = "New Full Desc"; var timezoneId = "GMT Standard Time"; var startDate = DateTime.Now; var endDate = DateTime.Now.AddDays(30); var org = 2; var handler = new EditCampaignCommandHandlerAsync(Context); var updatedCampaign = new CampaignSummaryViewModel { Id = 2, Name = name, Description = desc, FullDescription = fullDesc, TimeZoneId = timezoneId, StartDate = startDate, EndDate = endDate, OrganizationId = org, }; // Act var result = await handler.Handle(new EditCampaignCommandAsync { Campaign = updatedCampaign }); var savedCampaign = Context.Campaigns.SingleOrDefault(s => s.Id == 2); // Assert Assert.Equal(4, Context.Campaigns.Count()); Assert.Equal(2, result); Assert.Equal(name, savedCampaign.Name); Assert.Equal(desc, savedCampaign.Description); Assert.Equal(fullDesc, savedCampaign.FullDescription); Assert.Equal(timezoneId, savedCampaign.TimeZoneId); Assert.NotEqual(startDate.Date, new DateTime()); // We're not testing the date logic in this test, only that a datetime value is saved Assert.NotEqual(endDate.Date, new DateTime()); // We're not testing the date logic in this test, only that a datetime value is saved Assert.Equal(org, savedCampaign.ManagingOrganizationId); }
public async Task UpdatingExistingCampaignUpdatesLocationWithAllProperties() { // Arrange var name = "New Name"; var desc = "New Desc"; var org = 2; var address1 = "Address 1"; var address2 = "Address 1"; var city = "City"; var state = "State"; var postcode = "45231"; var country = "USA"; var handler = new EditCampaignCommandHandlerAsync(Context); var updatedCampaign = new CampaignSummaryViewModel { Id = 2, Name = name, Description = desc, OrganizationId = org, TimeZoneId = "GMT Standard Time", Location = new LocationEditViewModel { Address1 = address1, Address2 = address2, City = city, State = state, PostalCode = postcode } }; // Act await handler.Handle(new EditCampaignCommandAsync { Campaign = updatedCampaign }); var savedCampaign = Context.Campaigns.SingleOrDefault(s => s.Id == 2); // Assert Assert.Equal(address1, savedCampaign.Location.Address1); Assert.Equal(address2, savedCampaign.Location.Address2); Assert.Equal(city, savedCampaign.Location.City); Assert.Equal(state, savedCampaign.Location.State); Assert.Equal(postcode, savedCampaign.Location.PostalCode); Assert.Equal(country, savedCampaign.Location.Country); }
public async Task ExistingCampaign() { var context = ServiceProvider.GetService <AllReadyContext>(); var htb = new Organization() { Name = "Humanitarian Toolbox", LogoUrl = "http://www.htbox.org/upload/home/ht-hero.png", WebUrl = "http://www.htbox.org", Campaigns = new List <Campaign>() }; var firePrev = new Campaign() { Name = "Neighborhood Fire Prevention Days", ManagingOrganization = htb, TimeZoneId = "Eastern Standard Time" }; htb.Campaigns.Add(firePrev); context.Organizations.Add(htb); context.SaveChanges(); const string NEW_NAME = "Some new name value"; var startDate = new DateTime(2014, 12, 10); var endDate = new DateTime(2015, 7, 3); var vm = new CampaignSummaryViewModel { Description = firePrev.Description, EndDate = endDate, FullDescription = firePrev.FullDescription, StartDate = startDate, Id = firePrev.Id, ImageUrl = firePrev.ImageUrl, Name = NEW_NAME, OrganizationId = firePrev.ManagingOrganizationId, OrganizationName = firePrev.ManagingOrganization.Name, TimeZoneId = "Eastern Standard Time" }; var query = new EditCampaignCommandAsync { Campaign = vm }; var handler = new EditCampaignCommandHandlerAsync(context); var result = await handler.Handle(query); Assert.Equal(1, result); // should get back the Campaign id var data = context.Campaigns.Single(_ => _.Id == 1); Assert.Equal(NEW_NAME, data.Name); Assert.Equal(2014, data.StartDateTime.Year); Assert.Equal(12, data.StartDateTime.Month); Assert.Equal(10, data.StartDateTime.Day); Assert.Equal(00, data.StartDateTime.Hour); Assert.Equal(00, data.StartDateTime.Minute); Assert.Equal(-5, data.StartDateTime.Offset.TotalHours); Assert.Equal(2015, data.EndDateTime.Year); Assert.Equal(7, data.EndDateTime.Month); Assert.Equal(3, data.EndDateTime.Day); Assert.Equal(23, data.EndDateTime.Hour); Assert.Equal(59, data.EndDateTime.Minute); Assert.Equal(-4, data.EndDateTime.Offset.TotalHours); }