public async Task HandleAsync_ReturnsComplianceYearsForProducer()
        {
            // Arrange
            IGetProducerComplianceYearDataAccess dataAccess = A.Fake <IGetProducerComplianceYearDataAccess>();

            A.CallTo(() => dataAccess.GetComplianceYears("WEE/AA1111AA"))
            .Returns(new List <int> {
                2018, 2016
            });

            IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights();

            GetProducerComplianceYearHandler handler = new GetProducerComplianceYearHandler(dataAccess, authorization);

            Requests.Admin.GetProducerComplianceYear request = new Requests.Admin.GetProducerComplianceYear()
            {
                RegistrationNumber = "WEE/AA1111AA"
            };

            // Act
            var result = await handler.HandleAsync(request);

            // Assert
            Assert.Equal(2, result.Count);
            Assert.Collection(result,
                              r1 => Assert.Equal(2018, r1),
                              r2 => Assert.Equal(2016, r2));
        }
예제 #2
0
        public async Task <List <int> > HandleAsync(GetProducerComplianceYear request)
        {
            authorization.EnsureCanAccessInternalArea();

            var complianceYears = await dataAccess.GetComplianceYears(request.RegistrationNumber);

            if (complianceYears.Count == 0)
            {
                string message = string.Format(
                    "No producer has been registered with the registration number \"{0}\".",
                    request.RegistrationNumber);

                throw new ArgumentException(message);
            }

            return(complianceYears);
        }
        public async Task HandleAsync_WithUnknownRegistrationNumber_ThrowsArgumentException()
        {
            // Arrange
            IGetProducerComplianceYearDataAccess dataAccess = A.Fake <IGetProducerComplianceYearDataAccess>();

            A.CallTo(() => dataAccess.GetComplianceYears("WEE/AA1111AA"))
            .Returns(new List <int>());

            IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights();

            GetProducerComplianceYearHandler handler = new GetProducerComplianceYearHandler(dataAccess, authorization);

            Requests.Admin.GetProducerComplianceYear request = new Requests.Admin.GetProducerComplianceYear()
            {
                RegistrationNumber = "WEE/AA1111AA"
            };

            // Act
            Func <Task <List <int> > > action = async() => await handler.HandleAsync(request);

            // Assert
            await Assert.ThrowsAsync <ArgumentException>(action);
        }