Beispiel #1
0
        public void FirstQuarterHasEeeDataForOneCategory_Q1ContainsTonnage_AndTotalEeeContainsTonnage()
        {
            var map = new ProducerEeeMap();

            var           scheme   = new Scheme(Guid.NewGuid());
            var           producer = new RegisteredProducer("ABC12345", 2016, scheme);
            const decimal tonnage  = 10;

            var data = new List <ProducerEeeByQuarter>
            {
                new ProducerEeeByQuarter
                {
                    Eee = new List <EeeOutputAmount>
                    {
                        new EeeOutputAmount(ObligationType.B2B, WeeeCategory.AutomaticDispensers, tonnage, producer)
                    },
                    Quarter = new Quarter(2016, QuarterType.Q1)
                }
            };

            var result = map.Map(data);

            Assert.NotEmpty(result.Q1EEE);
            Assert.Single(result.Q1EEE);
            Assert.Equal(tonnage, result.Q1EEE.Single().Tonnage);
        }
        public async void PerformanceTest(int expectedUnderMilliseconds, string producerRegistrationNumber)
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                // Arrange
                var producerEeeMap = new ProducerEeeMap();

                A.CallTo(
                    () =>
                        mapper.Map<IEnumerable<ProducerEeeByQuarter>, ProducerEeeDetails>(
                            A<IEnumerable<ProducerEeeByQuarter>>._))
                    .ReturnsLazily((IEnumerable<ProducerEeeByQuarter> input) => producerEeeMap.Map(input));

                var stopwatch = Stopwatch.StartNew();
                await Handler(databaseWrapper.WeeeContext)
                    .HandleAsync(new GetProducerDetails
                    {
                        RegistrationNumber = producerRegistrationNumber
                    });
                stopwatch.Stop();

                // Assert
                Assert.InRange(stopwatch.ElapsedMilliseconds, 0, expectedUnderMilliseconds);
            }
        }
        public async void PerformanceTest(int expectedUnderMilliseconds, string producerRegistrationNumber)
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                // Arrange
                var producerEeeMap = new ProducerEeeMap();

                A.CallTo(
                    () =>
                    mapper.Map <IEnumerable <ProducerEeeByQuarter>, ProducerEeeDetails>(
                        A <IEnumerable <ProducerEeeByQuarter> > ._))
                .ReturnsLazily((IEnumerable <ProducerEeeByQuarter> input) => producerEeeMap.Map(input));

                var stopwatch = Stopwatch.StartNew();
                await Handler(databaseWrapper.WeeeContext)
                .HandleAsync(new GetProducerDetails
                {
                    RegistrationNumber = producerRegistrationNumber
                });

                stopwatch.Stop();

                // Assert
                Assert.InRange(stopwatch.ElapsedMilliseconds, 0, expectedUnderMilliseconds);
            }
        }
Beispiel #4
0
        public void NoProducerEeeByQuarter_ReturnsEmptyEeeData()
        {
            var map = new ProducerEeeMap();

            var result = map.Map(new List <ProducerEeeByQuarter>());

            Assert.Empty(result.TotalEee);
        }
Beispiel #5
0
        public void FirstAndSecondQuarterHasEeeDataForTheSameCategoryButDifferentObligationType_Q1ContainsTonnage_AndQ2ContainsTonnage_AndTotalEeeTonnageIsSeparatedIntoObligationTypes()
        {
            var map = new ProducerEeeMap();

            var                  scheme              = new Scheme(Guid.NewGuid());
            var                  producer            = new RegisteredProducer("ABC12345", 2016, scheme);
            const decimal        tonnageForQ1        = 10M;
            const decimal        tonnageForQ2        = 25.6M;
            const ObligationType obligationTypeForQ1 = ObligationType.B2B;
            const ObligationType obligationTypeForQ2 = ObligationType.B2C;

            var data = new List <ProducerEeeByQuarter>
            {
                new ProducerEeeByQuarter
                {
                    Eee = new List <EeeOutputAmount>
                    {
                        new EeeOutputAmount(obligationTypeForQ1, WeeeCategory.AutomaticDispensers, tonnageForQ1, producer)
                    },
                    Quarter = new Quarter(2016, QuarterType.Q1)
                },
                new ProducerEeeByQuarter
                {
                    Eee = new List <EeeOutputAmount>
                    {
                        new EeeOutputAmount(obligationTypeForQ2, WeeeCategory.AutomaticDispensers, tonnageForQ2, producer)
                    },
                    Quarter = new Quarter(2016, QuarterType.Q2)
                }
            };

            var result = map.Map(data);

            Assert.Single(result.Q1EEE);
            Assert.Equal(tonnageForQ1, result.Q1EEE.Single().Tonnage);

            Assert.Single(result.Q2EEE);
            Assert.Equal(tonnageForQ2, result.Q2EEE.Single().Tonnage);

            Assert.Equal(2, result.TotalEee.Count);
            Assert.Single(result.TotalEee.Where(eee => eee.Tonnage == tonnageForQ1 && (ObligationType)(int)eee.ObligationType == obligationTypeForQ1));
            Assert.Single(result.TotalEee.Where(eee => eee.Tonnage == tonnageForQ2 && (ObligationType)(int)eee.ObligationType == obligationTypeForQ2));
        }
Beispiel #6
0
        FirstAndSecondQuarterHasEeeDataForTheSameCategoryAndObligationType_Q1ContainsTonnage_AndQ2ContainsTonnage_AndTotalEeeContainsSingleSumOfTonnage
            ()
        {
            var map = new ProducerEeeMap();

            var           scheme       = new Scheme(Guid.NewGuid());
            var           producer     = new RegisteredProducer("ABC12345", 2016, scheme);
            const decimal tonnageForQ1 = 10M;
            const decimal tonnageForQ2 = 25.6M;

            var data = new List <ProducerEeeByQuarter>
            {
                new ProducerEeeByQuarter
                {
                    Eee = new List <EeeOutputAmount>
                    {
                        new EeeOutputAmount(ObligationType.B2B, WeeeCategory.AutomaticDispensers, tonnageForQ1, producer)
                    },
                    Quarter = new Quarter(2016, QuarterType.Q1)
                },
                new ProducerEeeByQuarter
                {
                    Eee = new List <EeeOutputAmount>
                    {
                        new EeeOutputAmount(ObligationType.B2B, WeeeCategory.AutomaticDispensers, tonnageForQ2, producer)
                    },
                    Quarter = new Quarter(2016, QuarterType.Q2)
                }
            };

            var result = map.Map(data);

            Assert.Single(result.Q1EEE);
            Assert.Equal(tonnageForQ1, result.Q1EEE.Single().Tonnage);

            Assert.Single(result.Q2EEE);
            Assert.Equal(tonnageForQ2, result.Q2EEE.Single().Tonnage);

            Assert.Single(result.TotalEee);
            Assert.Equal(tonnageForQ1 + tonnageForQ2, result.TotalEee.Single().Tonnage);
        }