Пример #1
0
        public async void GetSchemesHandlerTest_HappyPath_ReturnsSchemeDatasOrderedByName()
        {
            // Arrage
            IGetSchemesDataAccess dataAccess = CreateFakeDataAccess();

            IWeeeAuthorization authorization = new AuthorizationBuilder()
                                               .AllowInternalAreaAccess()
                                               .Build();

            IMap <Scheme, SchemeData> schemeMap = CreateFakeSchemeMap();

            GetSchemesHandler handler = new GetSchemesHandler(dataAccess, schemeMap, authorization);

            GetSchemes request = new GetSchemes();

            // Act
            List <SchemeData> results = await handler.HandleAsync(request);

            // Assert
            Assert.Collection(
                results,
                (element1) => Assert.Equal(schemeData2, element1),
                (element2) => Assert.Equal(schemeData1, element2),
                (element3) => Assert.Equal(schemeData3, element3));
        }
Пример #2
0
        public async Task HandleAsync_Always_ReturnsSchemesOrderedBySchemeName()
        {
            // Arrange
            IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights();

            IMap <Scheme, SchemeData> schemeMap = new SchemeMap(A.Dummy <IMapper>(), A.Fake <IMap <Address, AddressData> >(), A.Fake <IMap <Contact, ContactData> >());

            Organisation organisation = Organisation.CreateSoleTrader("Test Organisation");

            Scheme scheme1 = new Scheme(organisation);

            scheme1.UpdateScheme("Scheme C", "WEE/11AAAA11/SCH", "WEE1234567", ObligationType.Both, A.Dummy <UKCompetentAuthority>());
            scheme1.SetStatus(SchemeStatus.Approved);

            Scheme scheme2 = new Scheme(organisation);

            scheme2.UpdateScheme("Scheme A", "WEE/11AAAA11/SCH", "WEE1234567", ObligationType.Both, A.Dummy <UKCompetentAuthority>());
            scheme2.SetStatus(SchemeStatus.Approved);

            Scheme scheme3 = new Scheme(organisation);

            scheme3.UpdateScheme("Scheme D", "WEE/11AAAA11/SCH", "WEE1234567", ObligationType.Both, A.Dummy <UKCompetentAuthority>());
            scheme3.SetStatus(SchemeStatus.Approved);

            Scheme scheme4 = new Scheme(organisation);

            scheme4.UpdateScheme("Scheme B", "WEE/11AAAA11/SCH", "WEE1234567", ObligationType.Both, A.Dummy <UKCompetentAuthority>());
            scheme4.SetStatus(SchemeStatus.Approved);

            IGetSchemesDataAccess dataAccess = A.Fake <IGetSchemesDataAccess>();

            A.CallTo(() => dataAccess.GetSchemes()).Returns(
                new List <Scheme>()
            {
                scheme1,
                scheme2,
                scheme3,
                scheme4
            });

            GetSchemesHandler handler = new GetSchemesHandler(
                authorization,
                schemeMap,
                dataAccess);

            // Act
            GetSchemes request = new GetSchemes(GetSchemes.FilterType.Approved);

            List <SchemeData> results = await handler.HandleAsync(request);

            // Assert
            Assert.NotNull(results);
            Assert.Equal(4, results.Count);

            Assert.Collection(results,
                              r => Assert.Equal("Scheme A", r.SchemeName),
                              r => Assert.Equal("Scheme B", r.SchemeName),
                              r => Assert.Equal("Scheme C", r.SchemeName),
                              r => Assert.Equal("Scheme D", r.SchemeName));
        }
        public GetSchemesByOrganisationIdHandlerTests()
        {
            this.authorization = A.Fake <IWeeeAuthorization>();
            this.dataAccess    = A.Fake <IGetSchemesDataAccess>();
            this.schemeMap     = A.Fake <IMap <Scheme, SchemeData> >();

            handler = new GetSchemesByOrganisationIdHandler(authorization, schemeMap, dataAccess);
        }
Пример #4
0
 public GetSchemesHandler(
     IGetSchemesDataAccess dataAccess,
     IMap <Scheme, SchemeData> schemeMap,
     IWeeeAuthorization authorization)
 {
     this.dataAccess    = dataAccess;
     this.schemeMap     = schemeMap;
     this.authorization = authorization;
 }
Пример #5
0
        public async Task HandleAsync_WithFilterSetToApprovedOrWithdrawn_ReturnsSchemesWithStatusOfApprovedOrWithdrawn()
        {
            // Arrange
            IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights();

            var mapper = new SchemeMap(A.Fake <IMapper>(), A.Fake <IMap <Address, AddressData> >(), A.Fake <IMap <Contact, ContactData> >());

            Organisation organisation = Organisation.CreateSoleTrader("Test Organisation");

            Scheme schemePending = new Scheme(organisation);

            schemePending.UpdateScheme("Scheme Pending", "WEE/11AAAA11/SCH", "WEE1234567", ObligationType.Both, A.Dummy <UKCompetentAuthority>());

            Scheme schemeApproved = new Scheme(organisation);

            schemeApproved.UpdateScheme("Scheme Approved", "WEE/11AAAA11/SCH", "WEE1234567", ObligationType.Both, A.Dummy <UKCompetentAuthority>());
            schemeApproved.SetStatus(SchemeStatus.Approved);

            Scheme schemeRejected = new Scheme(organisation);

            schemeRejected.UpdateScheme("Scheme Rejected", "WEE/11AAAA11/SCH", "WEE1234567", ObligationType.Both, A.Dummy <UKCompetentAuthority>());
            schemeRejected.SetStatus(SchemeStatus.Rejected);

            Scheme schemeWithdrawn = new Scheme(organisation);

            schemeWithdrawn.UpdateScheme("Scheme Withdrawn", "WEE/11AAAA11/SCH", "WEE1234567", ObligationType.Both, A.Dummy <UKCompetentAuthority>());
            schemeWithdrawn.SetStatus(SchemeStatus.Approved);
            schemeWithdrawn.SetStatus(SchemeStatus.Withdrawn);

            IGetSchemesDataAccess dataAccess = A.Fake <IGetSchemesDataAccess>();

            A.CallTo(() => dataAccess.GetSchemes()).Returns(
                new List <Scheme>()
            {
                schemePending,
                schemeApproved,
                schemeRejected,
                schemeWithdrawn
            });

            GetSchemesHandler handler = new GetSchemesHandler(
                authorization,
                mapper,
                dataAccess);

            // Act
            GetSchemes request = new GetSchemes(GetSchemes.FilterType.ApprovedOrWithdrawn);

            List <SchemeData> results = await handler.HandleAsync(request);

            // Assert
            Assert.NotNull(results);
            Assert.Equal(2, results.Count);

            Assert.Contains(results, r => r.SchemeName == "Scheme Approved");
            Assert.Contains(results, r => r.SchemeName == "Scheme Withdrawn");
        }
Пример #6
0
        private IGetSchemesDataAccess CreateFakeDataAccess()
        {
            IGetSchemesDataAccess dataAccess = A.Fake <IGetSchemesDataAccess>();

            scheme1 = A.Fake <Domain.Scheme.Scheme>();
            scheme2 = A.Fake <Domain.Scheme.Scheme>();
            scheme3 = A.Fake <Domain.Scheme.Scheme>();

            var results = new List <Domain.Scheme.Scheme>()
            {
                scheme1,
                scheme2,
                scheme3
            };

            A.CallTo(() => dataAccess.GetCompleteSchemes()).Returns(results);
            return(dataAccess);
        }
Пример #7
0
        public async void GetSchemesHandler_WithNonInternalUser_ThrowsSecurityException(AuthorizationBuilder.UserType userType)
        {
            IGetSchemesDataAccess dataAccess = CreateFakeDataAccess();

            IWeeeAuthorization authorization = AuthorizationBuilder.CreateFromUserType(userType);

            IMap <Scheme, SchemeData> schemeMap = CreateFakeSchemeMap();

            GetSchemesHandler handler = new GetSchemesHandler(dataAccess, schemeMap, authorization);

            GetSchemes request = new GetSchemes();

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

            // Assert
            await Assert.ThrowsAsync <SecurityException>(action);
        }
Пример #8
0
 public GetSchemesByOrganisationIdHandler(IWeeeAuthorization authorization, IMap<Scheme, SchemeData> schemeMap, IGetSchemesDataAccess dataAccess)
 {
     this.authorization = authorization;
     this.dataAccess = dataAccess;
     this.schemeMap = schemeMap;
 }