public void Evaluate_Amend_MatchingProducerNotACompany_ReturnsPass() { // Arrange string companyNumber = "1234"; var newProducer = new producerType() { status = statusType.A, registrationNo = "prn", producerBusiness = new producerBusinessType() { Item = new companyType() { companyNumber = companyNumber } } }; var existingProducer = FakeProducer.Create(ObligationType.Both, "prn", producerBusiness: new ProducerBusiness(partnership: new Partnership("PartnerShip", A.Dummy <ProducerContact>(), new List <Partner>()))); A.CallTo(() => producerQuerySet.GetLatestProducerFromPreviousComplianceYears("prn")) .Returns(existingProducer); // Act var result = new CompanyRegistrationNumberChange(producerQuerySet) .Evaluate(newProducer); // Assert A.CallTo(() => producerQuerySet.GetLatestProducerFromPreviousComplianceYears("prn")) .MustHaveHappened(); Assert.True(result.IsValid); }
public void Evaluate_Amend_MatchingCompanyNumbersAfterFormatting_ReturnsPass(string newCompanyNumber, string existingCompanyNumber) { // Arrange var newProducer = new producerType() { status = statusType.A, registrationNo = "prn", producerBusiness = new producerBusinessType() { Item = new companyType() { companyNumber = newCompanyNumber } } }; var existingProducer = FakeProducer.Create(ObligationType.Both, "prn", producerBusiness: new ProducerBusiness(new Company("Company", existingCompanyNumber, null))); A.CallTo(() => producerQuerySet.GetLatestProducerFromPreviousComplianceYears("prn")) .Returns(existingProducer); // Act var result = new CompanyRegistrationNumberChange(producerQuerySet) .Evaluate(newProducer); // Assert Assert.True(result.IsValid); }
ProducerRegisteredMatchesComplianceYearAndObligationType_ButRegistrationNumberIsNullOrEmpty_ValidationSucceeds (string registrationNumber) { const string complianceYear = "2016"; const obligationTypeType obligationType = obligationTypeType.B2B; A.CallTo(() => producerQuerySet.GetProducerForOtherSchemeAndObligationType(A <string> ._, A <string> ._, A <Guid> ._, A <ObligationType> ._)) .Returns(FakeProducer.Create(obligationType.ToDomainObligationType(), registrationNumber)); producerType producer = new producerType() { tradingName = "Test Trader", obligationType = obligationType, producerBusiness = new producerBusinessType { Item = new partnershipType { partnershipName = "New Producer Name" } } }; schemeType scheme = new schemeType() { complianceYear = complianceYear, producerList = new[] { producer } }; var result = Rule().Evaluate(scheme, producer, A.Dummy <Guid>()); Assert.True(result.IsValid); }
public void Evaluate_Insert_MatchingCompanyRegistrationNumber_DoesNotPerformMigratedProducerCompanyRegistrationNumberCheck() { string companyName = "Test company name"; string companyNumber = "1234"; var newProducer = new producerType() { status = statusType.I, producerBusiness = new producerBusinessType() { Item = new companyType() { companyName = companyName, companyNumber = companyNumber } } }; var existingProducer = FakeProducer.Create(ObligationType.Both, "prn", producerBusiness: new ProducerBusiness(new Company(companyName, companyNumber, null))); A.CallTo(() => producerQuerySet.GetLatestCompanyProducers()).Returns(new List <ProducerSubmission>() { existingProducer }); new CompanyAlreadyRegistered(producerQuerySet, migratedProducerQuerySet).Evaluate(newProducer); A.CallTo(() => producerQuerySet.GetLatestCompanyProducers()).MustHaveHappened(); A.CallTo(() => migratedProducerQuerySet.GetAllMigratedProducers()).MustNotHaveHappened(); }
public void Evaluate_Insert_MatchingCompanyRegistrationNumber_ReturnsError() { string companyNumber = "1234"; var newProducer = new producerType() { status = statusType.I, producerBusiness = new producerBusinessType() { Item = new companyType() { companyNumber = companyNumber } } }; var existingProducer = FakeProducer.Create(ObligationType.Both, "prn", producerBusiness: new ProducerBusiness(new Company("Company", companyNumber, null))); A.CallTo(() => producerQuerySet.GetLatestCompanyProducers()).Returns(new List <ProducerSubmission>() { existingProducer }); var result = new CompanyAlreadyRegistered(producerQuerySet, migratedProducerQuerySet).Evaluate(newProducer); Assert.False(result.IsValid); Assert.Equal(Core.Shared.ErrorLevel.Error, result.ErrorLevel); }
public void Evaluate_Amend_MatchingProducerDifferentCompanyNumber_ReturnsWarning() { // Arrange var newProducer = new producerType() { status = statusType.A, registrationNo = "prn", producerBusiness = new producerBusinessType() { Item = new companyType() { companyNumber = "1111" } } }; var existingProducer = FakeProducer.Create(ObligationType.Both, "prn", producerBusiness: new ProducerBusiness(new Company("Company", "1234", null))); A.CallTo(() => producerQuerySet.GetLatestProducerFromPreviousComplianceYears("prn")) .Returns(existingProducer); // Act var result = new CompanyRegistrationNumberChange(producerQuerySet) .Evaluate(newProducer); // Assert A.CallTo(() => producerQuerySet.GetLatestProducerFromPreviousComplianceYears("prn")) .MustHaveHappened(); Assert.False(result.IsValid); Assert.Equal(Core.Shared.ErrorLevel.Warning, result.ErrorLevel); }
public void Evaluate_Insert_NonMatchingCompanyNumbersAfterFormatting_ReturnsPass(string newCompanyNumber, string existingCompanyNumber) { var newProducer = new producerType() { status = statusType.I, producerBusiness = new producerBusinessType() { Item = new companyType() { companyNumber = newCompanyNumber } } }; var existingProducer = FakeProducer.Create(ObligationType.Both, "prn", producerBusiness: new ProducerBusiness(new Company("Company", existingCompanyNumber, null))); A.CallTo(() => producerQuerySet.GetLatestCompanyProducers()).Returns(new List <ProducerSubmission>() { existingProducer }); var result = new CompanyAlreadyRegistered(producerQuerySet, migratedProducerQuerySet).Evaluate(newProducer); Assert.True(result.IsValid); }
public void GivenMultipleSubscriptionsThenCallsEachSubscriberOnNextMessage() { var subscriber1 = new Mock <IObserver <string> >(); var subscriber2 = new Mock <IObserver <string> >(); var producer = new FakeProducer(); using (var target = new MessageBroker <string>(new[] { subscriber1.Object, subscriber2.Object }, new[] { producer }, new Mock <ILogger <ManagedObservable <string> > >().Object)) producer.Trigger(); subscriber1.Verify(x => x.OnNext("test"), Times.Once); subscriber2.Verify(x => x.OnNext("test"), Times.Once); }
public void GetLatestProducerFromPreviousComplianceYears_PrnDoesNotMatch_ReturnsNull(string thisPrn, string existingPrn) { var producer = FakeProducer.Create(ObligationType.Both, existingPrn, Guid.NewGuid(), 2016); A.CallTo(() => currentProducersByRegistrationNumber.Run()) .Returns(new Dictionary <string, List <ProducerSubmission> > { { existingPrn, new List <ProducerSubmission> { producer } } }); var result = ProducerQuerySet().GetLatestProducerFromPreviousComplianceYears(thisPrn); Assert.Null(result); }
public void Insert_AndProducerExistsWithMatchingPrnInComplianceYearAndScheme_ReturnsPass() { A.CallTo(() => producerQuerySet.GetLatestProducerForComplianceYearAndScheme(A <string> ._, A <string> ._, A <Guid> ._)) .Returns(FakeProducer.Create(ObligationType.Both, "ABC12345")); var result = Rule().Evaluate(new schemeType(), new producerType { status = statusType.I, producerBusiness = new producerBusinessType { Item = new partnershipType { partnershipName = "New Producer Name" } } }, A.Dummy <Guid>()); Assert.True(result.IsValid); }
public void GetLatestProducerForComplianceYearAndScheme_ComplianceYearDoesNotMatch_ReturnsNull(int thisComplianceYear, int existingComplianceYear) { var schemeOrganisationId = Guid.NewGuid(); var registrationNumber = "ABC12345"; var producer = FakeProducer.Create(ObligationType.Both, registrationNumber, schemeOrganisationId, existingComplianceYear); A.CallTo(() => currentProducersByRegistrationNumber.Run()) .Returns(new Dictionary <string, List <ProducerSubmission> > { { registrationNumber, new List <ProducerSubmission> { producer } } }); var result = ProducerQuerySet().GetLatestProducerForComplianceYearAndScheme(registrationNumber, thisComplianceYear.ToString(), schemeOrganisationId); Assert.Null(result); }
public void GetLatestProducerForComplianceYearAndScheme_PrnDoesNotMatch_ReturnsNull(string thisPrn, string existingPrn) { var schemeOrganisationId = Guid.NewGuid(); var complianceYear = 2016; var producer = FakeProducer.Create(ObligationType.Both, existingPrn, schemeOrganisationId, complianceYear); A.CallTo(() => currentProducersByRegistrationNumber.Run()) .Returns(new Dictionary <string, List <ProducerSubmission> > { { existingPrn, new List <ProducerSubmission> { producer } } }); var result = ProducerQuerySet().GetLatestProducerForComplianceYearAndScheme(thisPrn, complianceYear.ToString(), schemeOrganisationId); Assert.Null(result); }
GetLatestProducerFromPreviousComplianceYears_TwoProducerEntriesIn2015_ReturnsLatestProducerByUploadDate() { const string prn = "ABC12345"; var oldestProducer = FakeProducer.Create(ObligationType.Both, prn, Guid.NewGuid(), 2015); var newestProducer = FakeProducer.Create(ObligationType.Both, prn, Guid.NewGuid(), 2015); A.CallTo(() => currentProducersByRegistrationNumber.Run()) .Returns(new Dictionary <string, List <ProducerSubmission> > { { prn, new List <ProducerSubmission> { oldestProducer, newestProducer } }, }); var result = ProducerQuerySet().GetLatestProducerFromPreviousComplianceYears(prn); Assert.Equal(newestProducer, result); }
public void Should_read_entire_request_body_when_there_is_a_continuation() { var requestBody = Encoding.ASCII.GetBytes("This is some request body content"); var fakeRequestBodyDelegate = new FakeProducer(true, requestBody, 5, false); this.environment["owin.RequestBody"] = (BodyDelegate)fakeRequestBodyDelegate; Request request = null; A.CallTo(() => this.fakeEngine.HandleRequest(A <Request> .Ignored, A <Action <NancyContext> > .Ignored, A <Action <Exception> > .Ignored)) .Invokes(i => request = (Request)i.Arguments[0]); this.host.ProcessRequest(environment, fakeResponseCallback, fakeErrorCallback); fakeRequestBodyDelegate.SendAll(); var read = new StreamReader(request.Body); var output = read.ReadToEnd(); output.ShouldEqual("This is some request body content"); }
public void GetLatestProducerFromCurrentComplianceYearForAnotherSchemeSameObligationType_ReturnsAnotherSchemeProducer() { const string prn = "ABC12345"; Guid schemeOrgId = Guid.NewGuid(); var anotherSchemeProducer = FakeProducer.Create(ObligationType.B2B, prn, schemeOrgId, 2016); var currentSchemeProducer = FakeProducer.Create(ObligationType.B2B, prn, Guid.NewGuid(), 2016); A.CallTo(() => currentProducersByRegistrationNumber.Run()) .Returns(new Dictionary <string, List <ProducerSubmission> > { { prn, new List <ProducerSubmission> { anotherSchemeProducer, currentSchemeProducer } } }); var result = ProducerQuerySet().GetProducerForOtherSchemeAndObligationType(prn, "2016", schemeOrgId, ObligationType.B2B); Assert.Equal(anotherSchemeProducer, result); }
public void GetLatestProducerForComplianceYearAndScheme_AllParametersMatch_ReturnsProducer() { var schemeOrganisationId = Guid.NewGuid(); var registrationNumber = "ABC12345"; var complianceYear = 2016; var producer = FakeProducer.Create(ObligationType.Both, registrationNumber, schemeOrganisationId, complianceYear); A.CallTo(() => currentProducersByRegistrationNumber.Run()) .Returns(new Dictionary <string, List <ProducerSubmission> > { { registrationNumber, new List <ProducerSubmission> { producer } } }); var result = ProducerQuerySet().GetLatestProducerForComplianceYearAndScheme(registrationNumber, complianceYear.ToString(), schemeOrganisationId); Assert.Equal(producer, result); }
GetProducerForOtherSchemeAndObligationType_ProducerExistsInOtherSchemesWithB2bAndB2cObligationTypes_ReturnsProducer(ObligationType obligationType) { const string prn = "ABC12345"; var producer1 = FakeProducer.Create(ObligationType.B2B, prn, Guid.NewGuid()); var producer2 = FakeProducer.Create(ObligationType.B2C, prn, Guid.NewGuid()); A.CallTo(() => currentProducersByRegistrationNumber.Run()) .Returns(new Dictionary <string, List <ProducerSubmission> > { { prn, new List <ProducerSubmission> { producer1, producer2 } } }); var result = ProducerQuerySet() .GetProducerForOtherSchemeAndObligationType(prn, "2016", Guid.NewGuid(), obligationType); Assert.NotNull(result); }
public void Amendment_AndProducerExistsWithMatchingPrnInPreviousComplianceYear_ReturnsFailAsWarning_AndIncludesProducerNamesInErrorMessage() { A.CallTo(() => producerQuerySet.GetLatestProducerFromPreviousComplianceYears(A <string> ._)) .Returns(FakeProducer.Create(ObligationType.Both, "ABC12345")); var result = Rule().Evaluate(new schemeType(), new producerType { status = statusType.A, producerBusiness = new producerBusinessType { Item = new partnershipType { partnershipName = "New Producer Name" } } }, A.Dummy <Guid>()); Assert.False(result.IsValid); Assert.Equal(Core.Shared.ErrorLevel.Warning, result.ErrorLevel); }
ProducerAlreadyRegisteredForSameComplianceYearAndObligationType_ValidationFails_AndMessageIncludesPrnAndObligationType_AndErrorLevelIsError (obligationTypeType existingObligationType, obligationTypeType xmlObligationType) { var schemeId = Guid.NewGuid(); A.CallTo(() => producerQuerySet.GetProducerForOtherSchemeAndObligationType(A <string> ._, A <string> ._, schemeId, A <ObligationType> ._)) .Returns(FakeProducer.Create(existingObligationType.ToDomainObligationType(), "ABC12345")); const string complianceYear = "2016"; const string registrationNumber = "ABC12345"; var producer = new producerType() { tradingName = "Test Trader", obligationType = xmlObligationType, registrationNo = registrationNumber, status = statusType.A, producerBusiness = new producerBusinessType { Item = new partnershipType { partnershipName = "New Producer Name" } } }; schemeType scheme = new schemeType() { complianceYear = complianceYear, producerList = new[] { producer } }; var result = Rule().Evaluate(scheme, producer, schemeId); Assert.False(result.IsValid); Assert.Contains(registrationNumber, result.Message); Assert.Contains(existingObligationType.ToDomainObligationType().ToString(), result.Message); Assert.Equal(Core.Shared.ErrorLevel.Error, result.ErrorLevel); }
GetProducerForOtherSchemeAndObligationType_ProducerForAnotherSchemeHasMatchingObligationType_ReturnsProducer( ObligationType existingProducerObligationType, ObligationType obligationType) { const string prn = "ABC12345"; var schemeOrgansationId = Guid.NewGuid(); var producer = FakeProducer.Create(existingProducerObligationType, prn, Guid.NewGuid()); A.CallTo(() => currentProducersByRegistrationNumber.Run()) .Returns(new Dictionary <string, List <ProducerSubmission> > { { prn, new List <ProducerSubmission> { producer } } }); var result = ProducerQuerySet() .GetProducerForOtherSchemeAndObligationType(prn, "2016", schemeOrgansationId, obligationType); Assert.NotNull(result); }
public void Evaluate_Amend_NonMatchingEmptyCompanyRegistrationNumber_WarningMessage_ContainsProducerNameAndOldCompanyRegistrationNumberOnly() { // Arrange string registrationNumber = "prn"; string existingCompanyName = "Existing company name"; string existingCompanyNumber = "1234"; string newCompanyNumber = "000"; var newProducer = new producerType() { status = statusType.A, registrationNo = registrationNumber, producerBusiness = new producerBusinessType() { Item = new companyType() { companyName = "new company name", companyNumber = newCompanyNumber } } }; var existingProducer = FakeProducer.Create(ObligationType.Both, registrationNumber, producerBusiness: new ProducerBusiness(new Company(existingCompanyName, existingCompanyNumber, null))); A.CallTo(() => producerQuerySet.GetLatestProducerFromPreviousComplianceYears(registrationNumber)) .Returns(existingProducer); // Act var result = new CompanyRegistrationNumberChange(producerQuerySet) .Evaluate(newProducer); // Assert Assert.False(result.IsValid); Assert.Equal(Core.Shared.ErrorLevel.Warning, result.ErrorLevel); Assert.Contains(existingCompanyName, result.Message); Assert.Contains(registrationNumber, result.Message); Assert.Contains(existingCompanyNumber, result.Message); Assert.DoesNotContain(newCompanyNumber, result.Message); }
public void ProducerRegisteredForSameComplianceYearAndObligationTypeButPartOfSameScheme_ValidationSucceeds() { const string complianceYear = "2016"; const string registrationNumber = "ABC12345"; var organisationId = Guid.NewGuid(); const obligationTypeType obligationType = obligationTypeType.B2B; A.CallTo(() => producerQuerySet.GetProducerForOtherSchemeAndObligationType(A <string> ._, A <string> ._, A <Guid> ._, A <ObligationType> ._)) .Returns(FakeProducer.Create(obligationType.ToDomainObligationType(), "ABC12345", organisationId)); producerType producer = new producerType() { tradingName = "Test Trader", obligationType = obligationType, registrationNo = registrationNumber, status = statusType.I, producerBusiness = new producerBusinessType { Item = new partnershipType { partnershipName = "New Producer Name" } } }; schemeType scheme = new schemeType() { complianceYear = complianceYear, approvalNo = "Test approval number 1", producerList = new[] { producer } }; var result = Rule().Evaluate(scheme, producer, A.Dummy <Guid>()); Assert.True(result.IsValid); }
public void ProducerAlreadyRegisteredForSameComplianceYearButObligationTypeDiffers_ValidationSucceeds( obligationTypeType existingObligationType, obligationTypeType xmlObligationType) { A.CallTo(() => producerQuerySet.GetProducerForOtherSchemeAndObligationType(A <string> ._, A <string> ._, A <Guid> ._, A <ObligationType> ._)) .Returns(FakeProducer.Create(existingObligationType.ToDomainObligationType(), "ABC12345")); const string complianceYear = "2016"; const string registrationNumber = "ABC12345"; producerType producer = new producerType() { tradingName = "Test Trader", obligationType = xmlObligationType, registrationNo = registrationNumber, status = statusType.I, producerBusiness = new producerBusinessType { Item = new partnershipType { partnershipName = "New Producer Name" } } }; schemeType scheme = new schemeType() { complianceYear = complianceYear, producerList = new[] { producer } }; var result = Rule().Evaluate(scheme, producer, A.Dummy <Guid>()); Assert.True(result.IsValid); }
public void Should_read_entire_request_body_when_there_is_a_continuation() { var requestBody = Encoding.ASCII.GetBytes("This is some request body content"); var fakeRequestBodyDelegate = new FakeProducer(true, requestBody, 5, false); this.environment["owin.RequestBody"] = (BodyDelegate)fakeRequestBodyDelegate; Request request = null; A.CallTo(() => this.fakeEngine.HandleRequest(A<Request>.Ignored, A<Action<NancyContext>>.Ignored, A<Action<Exception>>.Ignored)) .Invokes(i => request = (Request)i.Arguments[0]); this.host.ProcessRequest(environment, fakeResponseCallback, fakeErrorCallback); fakeRequestBodyDelegate.SendAll(); var read = new StreamReader(request.Body); var output = read.ReadToEnd(); output.ShouldEqual("This is some request body content"); }