Example #1
0
        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);
        }
Example #3
0
        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 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);
        }