public void Evaluate_ProducerHasOverseasContactInFrance_Passes() { // Arrange EnsureAnOverseasProducerIsNotBasedInTheUK rule = new EnsureAnOverseasProducerIsNotBasedInTheUK(); addressType address = new addressType(); address.country = countryType.FRANCE; contactDetailsType overseasContact = new contactDetailsType(); overseasContact.address = address; overseasProducerType overseasProducer = new overseasProducerType(); overseasProducer.overseasContact = overseasContact; authorisedRepresentativeType authorisedRepresentative = new authorisedRepresentativeType(); authorisedRepresentative.overseasProducer = overseasProducer; producerType producer = new producerType(); producer.authorisedRepresentative = authorisedRepresentative; // Act RuleResult result = rule.Evaluate(producer); // Assert Assert.Equal(true, result.IsValid); }
public void Evaluate_ProducerHasOverseaseContactInEngland_FailsWithError() { // Arrange EnsureAnOverseasProducerIsNotBasedInTheUK rule = new EnsureAnOverseasProducerIsNotBasedInTheUK(); addressType address = new addressType(); address.country = countryType.UKENGLAND; contactDetailsType overseasContact = new contactDetailsType(); overseasContact.address = address; overseasProducerType overseasProducer = new overseasProducerType(); overseasProducer.overseasContact = overseasContact; authorisedRepresentativeType authorisedRepresentative = new authorisedRepresentativeType(); authorisedRepresentative.overseasProducer = overseasProducer; producerType producer = new producerType(); producer.authorisedRepresentative = authorisedRepresentative; // Act RuleResult result = rule.Evaluate(producer); // Assert Assert.Equal(false, result.IsValid); Assert.Equal(ErrorLevel.Error, result.ErrorLevel); }
public async Task <ProducerContact> GetProducerContact(contactDetailsType contactDetails) { var countryName = GetCountryName(contactDetails.address.country); var country = await dataAccess.GetCountry(countryName); ProducerAddress address = new ProducerAddress( contactDetails.address.primaryName, contactDetails.address.secondaryName, contactDetails.address.streetName, contactDetails.address.town, contactDetails.address.locality, contactDetails.address.administrativeArea, country, contactDetails.address.Item); ProducerContact contact = new ProducerContact( contactDetails.title, contactDetails.forename, contactDetails.surname, contactDetails.phoneLandLine, contactDetails.phoneMobile, contactDetails.fax, contactDetails.email, address); return(contact); }
public async void GetProducerContact_ReturnsContactWithCorrectAddressDetails() { string primary = "Primary"; string secondary = "Secondary"; string street = "Street"; string locality = "Locality"; string admimistrativeArea = "Area"; string postCode = "WE3"; countryType country = countryType.UKENGLAND; string countryName = "UK - ENGLAND"; var contact = new contactDetailsType() { address = new addressType() { primaryName = primary, secondaryName = secondary, streetName = street, locality = locality, administrativeArea = admimistrativeArea, Item = postCode, country = country } }; var builder = new GenerateFromXmlBuilder(); A.CallTo(() => builder.DataAccess.GetCountry(A <string> ._)).Returns(new Country(Guid.NewGuid(), countryName)); var result = await builder.Build().GetProducerContact(contact); var resultAddress = result.Address; Assert.Equal(primary, resultAddress.PrimaryName); Assert.Equal(secondary, resultAddress.SecondaryName); Assert.Equal(street, resultAddress.Street); Assert.Equal(locality, resultAddress.Locality); Assert.Equal(admimistrativeArea, resultAddress.AdministrativeArea); Assert.Equal(postCode, resultAddress.PostCode); Assert.Equal(countryName, resultAddress.Country.Name); }
public async void GetProducerContact_ReturnsContactWithIndividualDetails() { string title = "title"; string forename = "forename"; string surname = "surname"; string landline = "987654"; string mobile = "12345"; string fax = "564"; string email = "[email protected]"; var contact = new contactDetailsType() { address = new addressType(), title = title, forename = forename, surname = surname, phoneLandLine = landline, phoneMobile = mobile, fax = fax, email = email }; var builder = new GenerateFromXmlBuilder(); A.CallTo(() => builder.DataAccess.GetCountry(A <string> ._)).Returns(new Country(Guid.NewGuid(), email)); var result = await builder.Build().GetProducerContact(contact); Assert.Equal(title, result.Title); Assert.Equal(forename, result.ForeName); Assert.Equal(surname, result.SurName); Assert.Equal(landline, result.Telephone); Assert.Equal(mobile, result.Mobile); Assert.Equal(fax, result.Fax); Assert.Equal(email, result.Email); }
public RuleResult Evaluate(producerType producer) { if (producer.authorisedRepresentative == null) { return(RuleResult.Pass()); } if (producer.authorisedRepresentative.overseasProducer == null) { return(RuleResult.Pass()); } if (producer.authorisedRepresentative.overseasProducer.overseasContact == null) { return(RuleResult.Pass()); } contactDetailsType contact = producer.authorisedRepresentative.overseasProducer.overseasContact; switch (contact.address.country) { case countryType.UKENGLAND: case countryType.UKNORTHERNIRELAND: case countryType.UKSCOTLAND: case countryType.UKWALES: string errorMessage = string.Format( "You have entered {0} {1} as an authorised representative of an organisation with a UK address. Authorised representatives cannot represent producers based in the UK. Review your file.", producer.GetProducerName(), producer.registrationNo); return(RuleResult.Fail(errorMessage, Core.Shared.ErrorLevel.Error)); default: return(RuleResult.Pass()); } }
public async void GetProducerContact_ReturnsContactWithIndividualDetails() { string title = "title"; string forename = "forename"; string surname = "surname"; string landline = "987654"; string mobile = "12345"; string fax = "564"; string email = "[email protected]"; var contact = new contactDetailsType() { address = new addressType(), title = title, forename = forename, surname = surname, phoneLandLine = landline, phoneMobile = mobile, fax = fax, email = email }; var builder = new GenerateFromXmlBuilder(); A.CallTo(() => builder.DataAccess.GetCountry(A<string>._)).Returns(new Country(Guid.NewGuid(), email)); var result = await builder.Build().GetProducerContact(contact); Assert.Equal(title, result.Title); Assert.Equal(forename, result.ForeName); Assert.Equal(surname, result.SurName); Assert.Equal(landline, result.Telephone); Assert.Equal(mobile, result.Mobile); Assert.Equal(fax, result.Fax); Assert.Equal(email, result.Email); }
public async void GetProducerContact_ReturnsContactWithCorrectAddressDetails() { string primary = "Primary"; string secondary = "Secondary"; string street = "Street"; string locality = "Locality"; string admimistrativeArea = "Area"; string postCode = "WE3"; countryType country = countryType.UKENGLAND; string countryName = "UK - ENGLAND"; var contact = new contactDetailsType() { address = new addressType() { primaryName = primary, secondaryName = secondary, streetName = street, locality = locality, administrativeArea = admimistrativeArea, Item = postCode, country = country } }; var builder = new GenerateFromXmlBuilder(); A.CallTo(() => builder.DataAccess.GetCountry(A<string>._)).Returns(new Country(Guid.NewGuid(), countryName)); var result = await builder.Build().GetProducerContact(contact); var resultAddress = result.Address; Assert.Equal(primary, resultAddress.PrimaryName); Assert.Equal(secondary, resultAddress.SecondaryName); Assert.Equal(street, resultAddress.Street); Assert.Equal(locality, resultAddress.Locality); Assert.Equal(admimistrativeArea, resultAddress.AdministrativeArea); Assert.Equal(postCode, resultAddress.PostCode); Assert.Equal(countryName, resultAddress.Country.Name); }
public async Task<ProducerContact> GetProducerContact(contactDetailsType contactDetails) { var countryName = GetCountryName(contactDetails.address.country); var country = await dataAccess.GetCountry(countryName); ProducerAddress address = new ProducerAddress( contactDetails.address.primaryName, contactDetails.address.secondaryName, contactDetails.address.streetName, contactDetails.address.town, contactDetails.address.locality, contactDetails.address.administrativeArea, country, contactDetails.address.Item); ProducerContact contact = new ProducerContact( contactDetails.title, contactDetails.forename, contactDetails.surname, contactDetails.phoneLandLine, contactDetails.phoneMobile, contactDetails.fax, contactDetails.email, address); return contact; }