/// <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; }
public void TearDown() { orchestrator = null; assembler = null; billRepository = null; billDataTransformer = null; expenditureRepository = null; expenditureDataTransformer = null; }
/// <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; }
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); }
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); }