/// <summary> /// Obtains the bill period chart data from the database. /// </summary> /// <param name="request">The request.</param> /// <returns> /// The response object. /// </returns> public async Task <GetBillPeriodChartDataResponse> GetBillPeriodChartData(GetBillPeriodChartDataRequest request) { return(await Orchestrate(async delegate { var bills = await billRepository.GetBillsForUser(request.UserId); var data = billDataTransformer.GetBillPeriodChartData(bills); return assembler.NewGetBillPeriodChartDataResponse(data, request.RequestReference); }, request)); }
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); }