コード例 #1
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="BillOrchestrator" /> class.
        /// </summary>
        /// <param name="assembler">
        ///     The assembler.
        /// </param>
        /// <param name="repository">
        ///     The repository.
        /// </param>
        /// <param name="dataTransformer">
        ///     The data transformer.
        /// </param>
        /// <param name="errorHelper">
        ///     The error helper.
        /// </param>
        /// <exception cref="System.ArgumentNullException">
        ///     Exception thrown when either the assembler, repository or data transformer are null.
        /// </exception>
        public BillOrchestrator(
            IBillAssembler assembler,
            IBillRepository repository,
            IBillDataTransformer dataTransformer,
            IErrorHelper errorHelper)
            : base(errorHelper)
        {
            if (assembler == null)
            {
                throw new ArgumentNullException(nameof(assembler));
            }

            if (repository == null)
            {
                throw new ArgumentNullException(nameof(repository));
            }

            if (dataTransformer == null)
            {
                throw new ArgumentNullException(nameof(dataTransformer));
            }

            this.assembler       = assembler;
            this.dataTransformer = dataTransformer;
            this.repository      = repository;
        }
コード例 #2
0
 public void TearDown()
 {
     orchestrator               = null;
     assembler                  = null;
     billRepository             = null;
     billDataTransformer        = null;
     expenditureRepository      = null;
     expenditureDataTransformer = null;
 }
コード例 #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ChartOrchestrator"/> class.
        /// </summary>
        /// <param name="assembler">
        /// The assembler.
        /// </param>
        /// <param name="billRepository">
        /// The bill repository.
        /// </param>
        /// <param name="billDataTransformer">
        /// The bill data transformer.
        /// </param>
        /// <param name="expenditureRepository">
        /// The expenditure Repository.
        /// </param>
        /// <param name="expenditureDataTransformer">
        /// The expenditure Data Transformer.
        /// </param>
        /// <param name="errorHelper">
        /// The error helper.
        /// </param>
        /// <exception cref="System.ArgumentNullException">
        /// Exception thrown if the assembler, repository or transformer are null.
        /// </exception>
        public ChartOrchestrator(
            IChartAssembler assembler,
            IBillRepository billRepository,
            IBillDataTransformer billDataTransformer,
            IExpenditureRepository expenditureRepository,
            IExpenditureDataTransformer expenditureDataTransformer,
            IErrorHelper errorHelper) : base(errorHelper)
        {
            if (assembler == null)
            {
                throw new ArgumentNullException(nameof(assembler));
            }

            if (billRepository == null)
            {
                throw new ArgumentNullException(nameof(billRepository));
            }

            if (billDataTransformer == null)
            {
                throw new ArgumentNullException(nameof(billDataTransformer));
            }

            if (expenditureRepository == null)
            {
                throw new ArgumentNullException(nameof(expenditureRepository));
            }

            if (expenditureDataTransformer == null)
            {
                throw new ArgumentNullException(nameof(expenditureDataTransformer));
            }

            this.assembler                  = assembler;
            this.billRepository             = billRepository;
            this.billDataTransformer        = billDataTransformer;
            this.expenditureDataTransformer = expenditureDataTransformer;
            this.expenditureRepository      = expenditureRepository;
        }
コード例 #4
0
        public void SetUp()
        {
            errorHelper                = Substitute.For <IErrorHelper>();
            assembler                  = Substitute.For <IChartAssembler>();
            billRepository             = Substitute.For <IBillRepository>();
            billDataTransformer        = Substitute.For <IBillDataTransformer>();
            expenditureRepository      = Substitute.For <IExpenditureRepository>();
            expenditureDataTransformer = Substitute.For <IExpenditureDataTransformer>();

            validGetBillCategoryChartDataRequest = new GetBillCategoryChartDataRequest
            {
                UserId   = Guid.NewGuid(),
                Username = "******"
            };

            validGetBillPeriodChartDataRequest = new GetBillPeriodChartDataRequest
            {
                UserId   = Guid.NewGuid(),
                Username = "******"
            };

            validGetExpenditureChartDataRequest =
                new GetExpenditureChartDataRequest {
                Month = 1, UserId = Guid.NewGuid(), Username = "******"
            };

            validBills       = new List <BillDataModel>();
            validExpenditure = new List <ExpenditureDataModel>();

            invalidGetBillPeriodChartDataRequest   = new GetBillPeriodChartDataRequest();
            invalidGetBillCategoryChartDataRequest = new GetBillCategoryChartDataRequest();
            invalidGetExpenditureChartDataRequest  = new GetExpenditureChartDataRequest();

            billRepository.GetBillsForUser(validGetBillCategoryChartDataRequest.UserId).Returns(validBills);
            billRepository.GetBillsForUser(validGetBillPeriodChartDataRequest.UserId).Returns(validBills);
            billRepository.GetBillsForUser(Guid.Empty).Throws(new Exception("TEST"));

            expenditureRepository.GetExpenditureForUserForMonth(validGetExpenditureChartDataRequest.UserId)
            .Returns(validExpenditure);
            expenditureRepository.GetExpenditureForUserForMonth(Guid.Empty).Throws(new Exception("TEST"));

            validData = new List <KeyValuePair <string, int> > {
                new KeyValuePair <string, int>("TEST", 1)
            };

            billDataTransformer.GetBillCategoryChartData(validBills).Returns(validData);
            billDataTransformer.GetBillPeriodChartData(validBills).Returns(validData);

            expenditureDataTransformer.GetRollingExpenditureSum(validExpenditure)
            .Returns(
                new List <KeyValuePair <DateTime, double> >
            {
                new KeyValuePair <DateTime, double>(DateTime.Now, 1.0)
            });

            validGetBillPeriodChartDataResponse = new GetBillPeriodChartDataResponse {
                Data = validData
            };
            validGetBillCategoryChartDataResponse = new GetBillCategoryChartDataResponse {
                Data = validData
            };
            validGetExpenditureChartDataResponse =
                new GetExpenditureChartDataResponse
            {
                Data = new List <KeyValuePair <DateTime, double> >
                {
                    new KeyValuePair <DateTime, double>(DateTime.Now, 1.0)
                }
            };

            assembler.NewGetExpenditureChartDataResponse(Arg.Any <IList <KeyValuePair <DateTime, double> > >(), Arg.Any <Guid>()).Returns(validGetExpenditureChartDataResponse);
            assembler.NewGetBillCategoryChartDataResponse(validData, Arg.Any <Guid>()).Returns(validGetBillCategoryChartDataResponse);
            assembler.NewGetBillPeriodChartDataResponse(validData, Arg.Any <Guid>()).Returns(validGetBillPeriodChartDataResponse);

            errorHelper.Create(Arg.Any <Exception>(), Arg.Any <string>(), Arg.Any <Type>(), Arg.Any <string>())
            .Returns(new ResponseErrorWrapper());
            errorHelper.Create(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <Type>(), Arg.Any <string>())
            .Returns(new ResponseErrorWrapper());

            orchestrator = new ChartOrchestrator(
                assembler,
                billRepository,
                billDataTransformer,
                expenditureRepository,
                expenditureDataTransformer,
                errorHelper);
        }
コード例 #5
0
        public void SetUp()
        {
            userId        = Guid.NewGuid();
            expenditureId = Guid.NewGuid();

            validData = new List <BillDataModel>();

            invalidDeleteBillRequest = new DeleteBillRequest();
            invalidEditBillRequest   = new EditBillRequest();
            invalidGetBillsForUserForMonthRequest = new GetBillsForUserForMonthRequest();
            invalidGetBillsForUserRequest         = new GetBillsForUserRequest();
            invalidGetBillRequest = new GetBillRequest();
            invalidAddBillRequest = new AddBillRequest();

            validBillDataModel =
                new BillDataModel
            {
                Amount   = 1,
                Category =
                    new CategoryDataModel
                {
                    CreationTime = DateTime.Now,
                    Id           = Guid.NewGuid(),
                    Name         = "TEST"
                },
                CreationTime = DateTime.Now,
                CategoryId   = Guid.NewGuid(),
                Id           = Guid.NewGuid(),
                UserId       = Guid.NewGuid()
            };

            expenditureProxy = new BillProxy
            {
                Amount   = 1.0,
                Category =
                    new CategoryProxy {
                    Id = Guid.NewGuid(), Name = "TEST"
                },
                CategoryId = Guid.NewGuid(),
                Id         = Guid.NewGuid(),
                UserId     = Guid.NewGuid()
            };

            validDeleteBillRequest =
                new DeleteBillRequest {
                BillId = Guid.NewGuid(), Username = "******"
            };

            validGetBillsForUserForMonthRequest =
                new GetBillsForUserForMonthRequest {
                MonthNumber = 1, UserId = userId, Username = "******"
            };

            validAddBillRequest =
                new AddBillRequest {
                Bill = expenditureProxy, Username = "******"
            };

            validGetBillsForUserRequest = new GetBillsForUserRequest {
                UserId = userId, Username = "******"
            };

            validGetBillRequest = new GetBillRequest {
                BillId = expenditureId, Username = "******"
            };

            validEditBillRequest =
                new EditBillRequest {
                Bill = expenditureProxy, Username = "******"
            };

            validGetBillsForUserResponse =
                new GetBillsForUserResponse {
                Bills = new List <BillProxy> {
                    expenditureProxy
                }
            };
            validGetBillResponse = new GetBillResponse {
                Bill = expenditureProxy
            };
            validAddBillResponse = new AddBillResponse {
                Bill = expenditureProxy
            };
            validEditBillResponse = new EditBillResponse {
                Bill = expenditureProxy
            };
            validDeleteBillResponse = new DeleteBillResponse {
                DeleteSuccess = true
            };
            validGetBillsForUserForMonthResponse =
                new GetBillsForUserForMonthResponse {
                Data = new List <KeyValuePair <DateTime, double> > {
                    new KeyValuePair <DateTime, double>(DateTime.Now, 1.0)
                }
            };

            assembler       = Substitute.For <IBillAssembler>();
            repository      = Substitute.For <IBillRepository>();
            dataTransformer = Substitute.For <IBillDataTransformer>();

            repository.AddBill(validBillDataModel).Returns(validBillDataModel);
            repository.AddBill(null).Throws(new Exception("TEST"));

            repository.DeleteBill(validDeleteBillRequest.BillId).Returns(true);
            repository.DeleteBill(invalidDeleteBillRequest.BillId).Throws(new Exception("TEST"));

            repository.EditBill(validBillDataModel).Returns(validBillDataModel);
            repository.EditBill(null).Throws(new Exception("TEST"));

            repository.GetBill(expenditureId).Returns(validBillDataModel);
            repository.GetBill(Guid.Empty).Throws(new Exception("TEST"));

            repository.GetBillsForUser(validGetBillsForUserRequest.UserId)
            .Returns(new List <BillDataModel> {
                validBillDataModel
            });
            repository.GetBillsForUser(Guid.Empty).Throws(new Exception("TEST"));

            dataTransformer.GetOutgoingBillsForMonth(Arg.Any <int>(), Arg.Any <List <BillDataModel> >())
            .Returns(
                new List <KeyValuePair <DateTime, double> > {
                new KeyValuePair <DateTime, double>(DateTime.Now, 1.0)
            });

            dataTransformer.GetBillCategoryChartData(Arg.Any <List <BillDataModel> >())
            .Returns(new List <KeyValuePair <string, int> > {
                new KeyValuePair <string, int>()
            });

            assembler.NewAddBillResponse(validBillDataModel, validAddBillRequest.RequestReference)
            .Returns(validAddBillResponse);

            assembler.NewDeleteBillResponse(true, validDeleteBillRequest.BillId)
            .Returns(validDeleteBillResponse);

            assembler.NewEditBillResponse(
                validBillDataModel,
                validEditBillRequest.RequestReference)
            .Returns(validEditBillResponse);

            assembler.NewBillDataModel(expenditureProxy).Returns(validBillDataModel);

            assembler.NewGetBillsForUserForMonthResponse(
                Arg.Any <List <KeyValuePair <DateTime, double> > >(),
                validGetBillsForUserForMonthRequest.RequestReference)
            .Returns(validGetBillsForUserForMonthResponse);

            assembler.NewGetBillsForUserResponse(
                Arg.Any <List <BillDataModel> >(),
                validGetBillsForUserRequest.RequestReference)
            .Returns(validGetBillsForUserResponse);

            assembler.NewDeleteBillResponse(true, validDeleteBillRequest.RequestReference)
            .Returns(validDeleteBillResponse);

            assembler.NewGetBillResponse(validBillDataModel, validGetBillRequest.RequestReference)
            .Returns(validGetBillResponse);

            errorHelper = Substitute.For <IErrorHelper>();

            errorHelper.Create(Arg.Any <Exception>(), Arg.Any <string>(), Arg.Any <Type>(), Arg.Any <string>())
            .Returns(new ResponseErrorWrapper());
            errorHelper.Create(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <Type>(), Arg.Any <string>())
            .Returns(new ResponseErrorWrapper());

            orchestrator = new BillOrchestrator(assembler, repository, dataTransformer, errorHelper);
        }