public void ToCase_ShouldMapToCase_WhenMapUsed_PavementJourney() { // Arrange var request = new FloodingRequest { WhereIsTheFlood = "pavement", WhereIsTheFloodingComingFrom = "river", WhatDoYouWantToReport = "flood", Map = new Map { Lat = "lat", Lng = "lng", Street = "street, place, 123456" }, Reporter = new ContactDetails { FirstName = "FirstName", LastName = "LastName", PhoneNumber = "PhoneNumber", EmailAddress = "EmailAddress" }, HowWouldYouLikeToBeContacted = "phone", IsTheFloodingBlockingTheWholePavementOrCausing = "yes", TellUsABoutTheFlood = "It's a flood" }; var streetResult = new FloodingAddress { UniqueId = "654321", USRN = "123456", Name = "street, place" }; var addressResult = new StockportGovUK.NetStandard.Models.Verint.Address { USRN = "123456", Reference = "reference", Description = "description" }; var expectedDescription = "Where is the flood coming from: river\r\nWhere is the flood: On a pavement\r\nBlocking the pavement: yes\r\nTell us about the flood: It's a flood\r\nHow would you like to be contacted: phone\r\n"; // Act var result = request.ToCase(_floodingPavementConfiguration, streetResult, _pavementFloodingLocationConfiguration); // Assert Assert.Equal(2002592, result.EventCode); Assert.Equal(_floodingPavementConfiguration.VerintOption.Classification, result.Classification); Assert.Equal(_floodingPavementConfiguration.VerintOption.EventTitle, result.EventTitle); Assert.Equal(streetResult.Name, result.Street.Description); Assert.Equal(streetResult.USRN, result.Street.USRN); Assert.Equal(streetResult.UniqueId, result.Street.Reference); Assert.Equal(expectedDescription, result.Description); }
public void ToCase_ShouldMapToCase_WhenMapNotUsed() { // Arrange var request = new FloodingRequest { WhereIsTheFlood = "home", WhereIsTheFloodingComingFrom = "river", WhatDoYouWantToReport = "flood", Reporter = new ContactDetails { FirstName = "FirstName", LastName = "LastName", PhoneNumber = "PhoneNumber", EmailAddress = "EmailAddress", Address = new StockportGovUK.NetStandard.Models.Addresses.Address { PlaceRef = "123456", SelectedAddress = "SelectedAddress" } }, HowWouldYouLikeToBeContacted = "phone", TellUsABoutTheFlood = "It's a flood" }; var streetResult = new FloodingAddress { USRN = "123456", UniqueId = "reference", Name = "description" }; var expectedDescription = "Where is the flood coming from: river\r\nWhere is the flood: In a home\r\nTell us about the flood: It's a flood\r\nHow would you like to be contacted: phone\r\n"; // Act var result = request.ToCase(_floodingHomeConfiguration, streetResult, null); // Assert Assert.Equal(2009484, result.EventCode); Assert.Equal(_floodingHomeConfiguration.VerintOption.Classification, result.Classification); Assert.Equal(_floodingHomeConfiguration.VerintOption.EventTitle, result.EventTitle); Assert.Equal(request.Reporter.Address.SelectedAddress, result.Street.Description); Assert.Equal(request.Reporter.Address.PlaceRef, result.Street.USRN); Assert.Equal(expectedDescription, result.Description); }
public static Case ToCase( this FloodingRequest floodingRequest, FloodingConfiguration floodingConfiguration, FloodingAddress streetResult, Config floodingLocationConfig ) { var crmCase = new Case { EventCode = floodingConfiguration.VerintOption.EventCode, Classification = floodingConfiguration.VerintOption.Classification, EventTitle = floodingConfiguration.VerintOption.EventTitle, Customer = new Customer { Forename = floodingRequest.Reporter.FirstName, Surname = floodingRequest.Reporter.LastName, Email = floodingRequest.Reporter.EmailAddress, Telephone = floodingRequest.Reporter.PhoneNumber }, Description = DescriptionBuilder(floodingRequest), RaisedByBehaviour = RaisedByBehaviourEnum.Individual, }; if (floodingRequest.DidNotUseMap) { crmCase.AssociatedWithBehaviour = AssociatedWithBehaviourEnum.Street; crmCase.Street = new Street { USRN = streetResult.USRN, Reference = streetResult.UniqueId, Description = floodingRequest.Reporter.Address.SelectedAddress }; crmCase.FurtherLocationInformation = floodingRequest.Reporter.Address.SelectedAddress; } else { if (string.IsNullOrEmpty(floodingRequest.Map.Street)) { crmCase.Street = new Street { USRN = ConfirmConstants.USRN, Description = ConfirmConstants.Description, Reference = ConfirmConstants.USRN }; } else { crmCase.AssociatedWithBehaviour = AssociatedWithBehaviourEnum.Street; crmCase.Street = new Street { USRN = streetResult.USRN, Description = streetResult.Name, Reference = string.IsNullOrEmpty(streetResult.UniqueId) ? null : streetResult.UniqueId }; } crmCase.FurtherLocationInformation = floodingLocationConfig.Value; } return(crmCase); }