Example #1
0
        private async Task <IEnumerable <SchemeData> > GetSchemesWithInvoices(CompetentAuthority authority)
        {
            FetchSchemesWithInvoices request = new FetchSchemesWithInvoices(authority);

            using (IWeeeClient client = weeeClient())
            {
                return(await client.SendAsync(User.GetAccessToken(), request));
            }
        }
        public async Task GetAllInvoicedSchemesHandler_ReturnsSchemes()
        {
            // Arrange
            UKCompetentAuthority competentAuthority = 
                new UKCompetentAuthority(Guid.NewGuid(), "Environment Agency", "EA", new Country(Guid.NewGuid(), "UK - England"), "*****@*****.**");
            var scheme1 = A.Fake<Scheme>();
            A.CallTo(() => scheme1.SchemeName).Returns("Test1");
            A.CallTo(() => scheme1.CompetentAuthority).Returns(competentAuthority);
            var scheme2 = A.Fake<Scheme>();
            A.CallTo(() => scheme2.SchemeName).Returns("Test2");
            A.CallTo(() => scheme2.CompetentAuthority).Returns(competentAuthority);
            var scheme3 = A.Fake<Scheme>();
            A.CallTo(() => scheme3.SchemeName).Returns("Test3");
            A.CallTo(() => scheme3.CompetentAuthority).Returns(competentAuthority);

            InvoiceRun invoice = A.Fake<InvoiceRun>();
           
            var memberUpload1 = A.Fake<MemberUpload>();
            A.CallTo(() => memberUpload1.ComplianceYear).Returns(2015);
            A.CallTo(() => memberUpload1.Scheme).Returns(scheme1);
            A.CallTo(() => memberUpload1.InvoiceRun).Returns(invoice);

            var memberUpload2 = A.Fake<MemberUpload>();
            A.CallTo(() => memberUpload2.ComplianceYear).Returns(2017);
            A.CallTo(() => memberUpload2.Scheme).Returns(scheme2);
            A.CallTo(() => memberUpload2.InvoiceRun).Returns(invoice);

            var memberUpload3 = A.Fake<MemberUpload>();
            A.CallTo(() => memberUpload3.ComplianceYear).Returns(2016);
            A.CallTo(() => memberUpload3.Scheme).Returns(scheme3);
            A.CallTo(() => memberUpload3.InvoiceRun).Returns(invoice);

            ICommonDataAccess dataAccess = A.Fake<ICommonDataAccess>();
            A.CallTo(() => dataAccess.FetchInvoicedMemberUploadsAsync(competentAuthority))
                .Returns(new List<MemberUpload>()
                {
                     memberUpload1,
                    memberUpload2,
                    memberUpload3
                });

            IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights();
            FetchSchemesWithInvoicesHandler handler = new FetchSchemesWithInvoicesHandler(
               authorization,
               dataAccess);

            FetchSchemesWithInvoices request = new FetchSchemesWithInvoices(CompetentAuthority.England);
            A.CallTo(() => dataAccess.FetchCompetentAuthority(CompetentAuthority.England)).Returns(competentAuthority);
            // Act
            var schemesList = await handler.HandleAsync(request);

            //Assert
            Assert.NotNull(schemesList);
            Assert.Equal(3, schemesList.Count);
            Assert.Collection(schemesList,
                r1 => Assert.Equal("Test1", r1.ToString()),
                r2 => Assert.Equal("Test2", r2.ToString()),
                r3 => Assert.Equal("Test3", r3.ToString()));
        }   
        public async Task GetAllInvoicedSchemesHandler_ReturnsSchemes()
        {
            // Arrange
            UKCompetentAuthority competentAuthority =
                new UKCompetentAuthority(Guid.NewGuid(), "Environment Agency", "EA", new Country(Guid.NewGuid(), "UK - England"), "*****@*****.**", 0);
            var scheme1 = A.Fake <Scheme>();

            A.CallTo(() => scheme1.CompetentAuthority).Returns(competentAuthority);
            var scheme2 = A.Fake <Scheme>();

            A.CallTo(() => scheme2.CompetentAuthority).Returns(competentAuthority);
            var scheme3 = A.Fake <Scheme>();

            A.CallTo(() => scheme3.CompetentAuthority).Returns(competentAuthority);

            InvoiceRun invoice = A.Fake <InvoiceRun>();

            var memberUpload1 = A.Fake <MemberUpload>();

            A.CallTo(() => memberUpload1.ComplianceYear).Returns(2015);
            A.CallTo(() => memberUpload1.Scheme).Returns(scheme1);
            A.CallTo(() => memberUpload1.InvoiceRun).Returns(invoice);

            var memberUpload2 = A.Fake <MemberUpload>();

            A.CallTo(() => memberUpload2.ComplianceYear).Returns(2017);
            A.CallTo(() => memberUpload2.Scheme).Returns(scheme2);
            A.CallTo(() => memberUpload2.InvoiceRun).Returns(invoice);

            var memberUpload3 = A.Fake <MemberUpload>();

            A.CallTo(() => memberUpload3.ComplianceYear).Returns(2016);
            A.CallTo(() => memberUpload3.Scheme).Returns(scheme3);
            A.CallTo(() => memberUpload3.InvoiceRun).Returns(invoice);

            var schemeData1 = A.Fake <SchemeData>();
            var schemeData2 = A.Fake <SchemeData>();
            var schemeData3 = A.Fake <SchemeData>();

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

            A.CallTo(() => dataAccess.FetchInvoicedMemberUploadsAsync(competentAuthority))
            .Returns(new List <MemberUpload>()
            {
                memberUpload1,
                memberUpload2,
                memberUpload3
            });

            IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights();
            var schemeMap = A.Fake <IMap <Scheme, SchemeData> >();

            A.CallTo(() => schemeMap.Map(memberUpload1.Scheme)).Returns(schemeData1);
            A.CallTo(() => schemeMap.Map(memberUpload2.Scheme)).Returns(schemeData2);
            A.CallTo(() => schemeMap.Map(memberUpload3.Scheme)).Returns(schemeData3);

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

            FetchSchemesWithInvoices request = new FetchSchemesWithInvoices(CompetentAuthority.England);

            A.CallTo(() => dataAccess.FetchCompetentAuthority(CompetentAuthority.England)).Returns(competentAuthority);
            // Act
            var schemesList = await handler.HandleAsync(request);

            //Assert
            Assert.NotNull(schemesList);
            Assert.Equal(3, schemesList.Count);
            Assert.Collection(schemesList,
                              r1 => Assert.Equal(r1, schemeData1),
                              r2 => Assert.Equal(r2, schemeData2),
                              r3 => Assert.Equal(r3, schemeData3));
        }
 private async Task<IEnumerable<string>> GetSchemesWithInvoices(CompetentAuthority authority)
 {
     FetchSchemesWithInvoices request = new FetchSchemesWithInvoices(authority);
     using (IWeeeClient client = weeeClient())
     {
         return await client.SendAsync(User.GetAccessToken(), request);
     }
 }