public async Task Validate_WithValidPRN_ButIncorrectProducerDetails_ReturnsExpectedErrors() { // Arrange var builder = new EeeValidatorBuilder(); builder.Year = 2016; // Setup producer that exists in scheme for compliance year var prn = "Test PRN"; var producerName = "Test Producer Name"; var obligationType = ObligationType.B2C; var producerSubmission = A.Fake<ProducerSubmission>(); A.CallTo(() => producerSubmission.OrganisationName) .Returns(producerName); var producer = A.Fake<RegisteredProducer>(x => x.WithArgumentsForConstructor(() => new RegisteredProducer(prn, 2016, builder.Scheme))); A.CallTo(() => producer.CurrentSubmission) .Returns(producerSubmission); A.CallTo(() => producerSubmission.ObligationType) .Returns(obligationType); A.CallTo(() => builder.DataAccess.GetRegisteredProducer(prn)) .Returns(producer); // Act var errors = await builder.InvokeValidate(prn, "Incorrect Name", ObligationType.B2B); // Assert Assert.Equal(2, errors.Count); }
public async Task Validate_WithValidPRN_ButIncorrectProducerDetails_ReturnsExpectedErrors() { // Arrange var builder = new EeeValidatorBuilder(); builder.Year = 2016; // Setup producer that exists in scheme for compliance year var prn = "Test PRN"; var producerName = "Test Producer Name"; var obligationType = ObligationType.B2C; var producerSubmission = A.Fake <ProducerSubmission>(); A.CallTo(() => producerSubmission.OrganisationName) .Returns(producerName); var producer = A.Fake <RegisteredProducer>(x => x.WithArgumentsForConstructor(() => new RegisteredProducer(prn, 2016, builder.Scheme))); A.CallTo(() => producer.CurrentSubmission) .Returns(producerSubmission); A.CallTo(() => producerSubmission.ObligationType) .Returns(obligationType); A.CallTo(() => builder.DataAccess.GetRegisteredProducer(prn)) .Returns(producer); // Act var errors = await builder.InvokeValidate(prn, "Incorrect Name", ObligationType.B2B); // Assert Assert.Equal(2, errors.Count); }
public void ValidateProducerObligationType_WithIncorrectObligationType_ReturnsError(ObligationType registeredObligationType, ObligationType eeeObligationType) { // Arrange var builder = new EeeValidatorBuilder(); var producerSubmission = A.Fake <ProducerSubmission>(); A.CallTo(() => producerSubmission.ObligationType) .Returns(registeredObligationType); var registeredProducer = A.Fake <RegisteredProducer>(); A.CallTo(() => registeredProducer.CurrentSubmission) .Returns(producerSubmission); // Act var error = builder.Build().ValidateProducerObligationType(registeredProducer, "PRN1234", "TestProducerName", eeeObligationType); // Assert Assert.NotNull(error); Assert.Equal(ErrorLevel.Error, error.ErrorLevel); Assert.Contains("for one or more categories but is only registered for", error.Description); Assert.Contains("PRN1234", error.Description); Assert.Contains("TestProducerName", error.Description); Assert.Contains(eeeObligationType.ToString(), error.Description); Assert.Contains(registeredObligationType.ToString(), error.Description); }
public void ValidateProducerName_WithIncorrectProducerName_ReturnsError() { // Arrange var builder = new EeeValidatorBuilder(); builder.Year = 2016; var producerSubmission = A.Fake <ProducerSubmission>(); A.CallTo(() => producerSubmission.OrganisationName) .Returns("ProducerName123"); var registeredProducer = A.Fake <RegisteredProducer>(); A.CallTo(() => registeredProducer.CurrentSubmission) .Returns(producerSubmission); // Act var error = builder.Build().ValidateProducerName(registeredProducer, "PRN1234", "IncorrectProducerName"); // Assert Assert.NotNull(error); Assert.Equal(ErrorLevel.Error, error.ErrorLevel); Assert.Contains("does not match the registered producer name of", error.Description); Assert.Contains("ProducerName123", error.Description); Assert.Contains("IncorrectProducerName", error.Description); Assert.Contains("PRN1234", error.Description); Assert.Contains("2016", error.Description); }
public void ValidateProducerObligationType_WithCorrectObligationType_DoesNotReturnError(ObligationType registeredObligationType, ObligationType eeeObligationType) { // Arrange var builder = new EeeValidatorBuilder(); var producerSubmission = A.Fake <ProducerSubmission>(); A.CallTo(() => producerSubmission.ObligationType) .Returns(registeredObligationType); var registeredProducer = A.Fake <RegisteredProducer>(); A.CallTo(() => registeredProducer.CurrentSubmission) .Returns(producerSubmission); // Act var error = builder.Build().ValidateProducerObligationType(registeredProducer, A.Dummy <string>(), A.Dummy <string>(), eeeObligationType); // Assert Assert.Null(error); }
public async Task Validate_WithProducerNotRegisteredWithScheme_ReturnsError() { // Arrange var builder = new EeeValidatorBuilder(); builder.Year = 2016; var prn = "Non-existent PRN"; A.CallTo(() => builder.DataAccess.GetRegisteredProducer(A <string> ._)) .Returns((RegisteredProducer)null); // Act var errors = await builder.InvokeValidate(prn); // Assert Assert.Equal(1, errors.Count); ErrorData error = errors[0]; Assert.Equal(ErrorLevel.Error, error.ErrorLevel); Assert.Contains(prn, error.Description); Assert.Contains("2016", error.Description); }
public void ValidateProducerName_WithProducerNamesDifferentCase_DoesNotReturnError() { // Arrange var builder = new EeeValidatorBuilder(); builder.Year = 2016; var producerSubmission = A.Fake <ProducerSubmission>(); A.CallTo(() => producerSubmission.OrganisationName) .Returns("producer name aaa"); var registeredProducer = A.Fake <RegisteredProducer>(); A.CallTo(() => registeredProducer.CurrentSubmission) .Returns(producerSubmission); // Act var error = builder.Build().ValidateProducerName(registeredProducer, A.Dummy <string>(), "Producer NamE AAA"); // Assert Assert.Null(error); }
public async Task Validate_WithProducerNotRegisteredWithScheme_ReturnsError() { // Arrange var builder = new EeeValidatorBuilder(); builder.Year = 2016; var prn = "Non-existent PRN"; A.CallTo(() => builder.DataAccess.GetRegisteredProducer(A<string>._)) .Returns((RegisteredProducer)null); // Act var errors = await builder.InvokeValidate(prn); // Assert Assert.Equal(1, errors.Count); ErrorData error = errors[0]; Assert.Equal(ErrorLevel.Error, error.ErrorLevel); Assert.Contains(prn, error.Description); Assert.Contains("2016", error.Description); }
public void ValidateProducerObligationType_WithCorrectObligationType_DoesNotReturnError(ObligationType registeredObligationType, ObligationType eeeObligationType) { // Arrange var builder = new EeeValidatorBuilder(); var producerSubmission = A.Fake<ProducerSubmission>(); A.CallTo(() => producerSubmission.ObligationType) .Returns(registeredObligationType); var registeredProducer = A.Fake<RegisteredProducer>(); A.CallTo(() => registeredProducer.CurrentSubmission) .Returns(producerSubmission); // Act var error = builder.Build().ValidateProducerObligationType(registeredProducer, A.Dummy<string>(), A.Dummy<string>(), eeeObligationType); // Assert Assert.Null(error); }
public void ValidateProducerObligationType_WithIncorrectObligationType_ReturnsError(ObligationType registeredObligationType, ObligationType eeeObligationType) { // Arrange var builder = new EeeValidatorBuilder(); var producerSubmission = A.Fake<ProducerSubmission>(); A.CallTo(() => producerSubmission.ObligationType) .Returns(registeredObligationType); var registeredProducer = A.Fake<RegisteredProducer>(); A.CallTo(() => registeredProducer.CurrentSubmission) .Returns(producerSubmission); // Act var error = builder.Build().ValidateProducerObligationType(registeredProducer, "PRN1234", "TestProducerName", eeeObligationType); // Assert Assert.NotNull(error); Assert.Equal(ErrorLevel.Error, error.ErrorLevel); Assert.Contains("for one or more categories but is only registered for", error.Description); Assert.Contains("PRN1234", error.Description); Assert.Contains("TestProducerName", error.Description); Assert.Contains(eeeObligationType.ToString(), error.Description); Assert.Contains(registeredObligationType.ToString(), error.Description); }
public void ValidateProducerName_WithProducerNamesDifferentCase_DoesNotReturnError() { // Arrange var builder = new EeeValidatorBuilder(); builder.Year = 2016; var producerSubmission = A.Fake<ProducerSubmission>(); A.CallTo(() => producerSubmission.OrganisationName) .Returns("producer name aaa"); var registeredProducer = A.Fake<RegisteredProducer>(); A.CallTo(() => registeredProducer.CurrentSubmission) .Returns(producerSubmission); // Act var error = builder.Build().ValidateProducerName(registeredProducer, A.Dummy<string>(), "Producer NamE AAA"); // Assert Assert.Null(error); }
public void ValidateProducerName_WithIncorrectProducerName_ReturnsError() { // Arrange var builder = new EeeValidatorBuilder(); builder.Year = 2016; var producerSubmission = A.Fake<ProducerSubmission>(); A.CallTo(() => producerSubmission.OrganisationName) .Returns("ProducerName123"); var registeredProducer = A.Fake<RegisteredProducer>(); A.CallTo(() => registeredProducer.CurrentSubmission) .Returns(producerSubmission); // Act var error = builder.Build().ValidateProducerName(registeredProducer, "PRN1234", "IncorrectProducerName"); // Assert Assert.NotNull(error); Assert.Equal(ErrorLevel.Error, error.ErrorLevel); Assert.Contains("does not match the registered producer name of", error.Description); Assert.Contains("ProducerName123", error.Description); Assert.Contains("IncorrectProducerName", error.Description); Assert.Contains("PRN1234", error.Description); Assert.Contains("2016", error.Description); }