public async Task UpdateTemplate() { var options = TestHelper.GetDbContext("UpdateTemplate"); var temp1 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid(), CompanyId = Guid.NewGuid(), Name = "Template 1", StartDate = DateTime.Now.AddDays(-1), EndDate = DateTime.Now.AddDays(1), BrokerSpecific = true, Config = new Config() }; var temp2 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid() }; using (var context = new DataContext(options)) { context.CommissionStatementTemplate.Add(temp2); context.CommissionStatementTemplate.Add(temp1); context.SaveChanges(); } using (var context = new DataContext(options)) { var template = new CommissionStatementTemplateEdit { Id = temp1.Id, CompanyId = Guid.NewGuid(), Name = "Template 1 updated", StartDate = DateTime.Now.AddDays(-2), EndDate = DateTime.Now.AddDays(2), BrokerSpecific = false, Config = GetValidConfig() }; var service = new CommissionStatementTemplateService(context, null, null); //When var result = await service.UpdateTemplate(template); //Then Assert.True(result.Success); var actual = await context.CommissionStatementTemplate.FindAsync(temp1.Id); Assert.Equal(template.Name, actual.Name); Assert.Equal(template.CompanyId, actual.CompanyId); Assert.Equal(template.Config, actual.Config); Assert.Equal(template.StartDate.Value.Date, actual.StartDate); Assert.Equal(template.EndDate.Value.Date, actual.EndDate); Assert.Equal(template.BrokerSpecific, actual.BrokerSpecific); } }
private CommissionStatementTemplateEntity MapModelToEntity(CommissionStatementTemplateEdit model, CommissionStatementTemplateEntity entity = null) { if (entity == null) { entity = new CommissionStatementTemplateEntity(); } entity.Name = model.Name; entity.CompanyId = model.CompanyId.Value; entity.Config = model.Config; entity.StartDate = model.StartDate.HasValue ? (DateTime?)model.StartDate.Value.Date : null; entity.EndDate = model.EndDate.HasValue ? (DateTime?)model.EndDate.Value.Date : null; entity.BrokerSpecific = model.BrokerSpecific; return(entity); }
public async Task GetTemplate() { var options = TestHelper.GetDbContext("GetTemplate"); //Given var temp1 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid(), CompanyId = Guid.NewGuid(), Name = "Template 1", StartDate = DateTime.Now.AddDays(-1), EndDate = DateTime.Now.AddDays(1), BrokerSpecific = true, Config = new Config() }; var temp2 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid() }; using (var context = new DataContext(options)) { context.CommissionStatementTemplate.Add(temp2); context.CommissionStatementTemplate.Add(temp1); context.SaveChanges(); } using (var context = new DataContext(options)) { var service = new CommissionStatementTemplateService(context, null, null); //When var actual = await service.GetTemplate(temp1.Id); //Then Assert.Equal(temp1.Id, actual.Id); Assert.Equal(temp1.Name, actual.Name); Assert.Equal(temp1.CompanyId, actual.CompanyId); Assert.Equal(temp1.Config, actual.Config); Assert.Equal(temp1.StartDate, actual.StartDate); Assert.Equal(temp1.EndDate, actual.EndDate); Assert.Equal(temp1.BrokerSpecific, actual.BrokerSpecific); } }
public async Task GetTemplates_DateFilter() { var options = TestHelper.GetDbContext("GetTemplates_DateFilter"); var now = DateTime.Now.Date; //Given //Start and End in scope var temp1 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid(), CompanyId = Guid.NewGuid(), Name = "Template 1", StartDate = now.AddMonths(-1), EndDate = now.AddMonths(1), BrokerSpecific = true, Config = new Config() }; //Old start, old end, out of scope var temp2 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid(), CompanyId = Guid.NewGuid(), Name = "Template 2", StartDate = now.AddMonths(-12), EndDate = now.AddMonths(-10), BrokerSpecific = true, Config = new Config() }; //Old start, no end, in scope var temp3 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid(), CompanyId = Guid.NewGuid(), Name = "Template 3", StartDate = now.AddMonths(-12), EndDate = null, BrokerSpecific = true, Config = new Config() }; //Future start, no end, out of scope var temp4 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid(), CompanyId = Guid.NewGuid(), Name = "Template 4", StartDate = now.AddDays(1), EndDate = null, BrokerSpecific = true, Config = new Config() }; //Future end, no start, in scope var temp5 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid(), CompanyId = Guid.NewGuid(), Name = "Template 5", StartDate = null, EndDate = now.AddMonths(1), BrokerSpecific = true, Config = new Config() }; //Old end, no start, out of scope var temp6 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid(), CompanyId = Guid.NewGuid(), Name = "Template 6", StartDate = null, EndDate = now.AddMonths(-5), BrokerSpecific = true, Config = new Config() }; using (var context = new DataContext(options)) { context.CommissionStatementTemplate.Add(temp1); context.CommissionStatementTemplate.Add(temp2); context.CommissionStatementTemplate.Add(temp3); context.CommissionStatementTemplate.Add(temp4); context.CommissionStatementTemplate.Add(temp5); context.CommissionStatementTemplate.Add(temp6); context.SaveChanges(); } using (var context = new DataContext(options)) { var service = new CommissionStatementTemplateService(context, null, null); //When var queryOptions = new CommissionStatementTemplateQueryOptions("", "", 0, 0); queryOptions.Date = now; var result = await service.GetTemplates(queryOptions); //Then Assert.Equal(3, result.TotalItems); var templates = result.Items.ToArray(); Assert.Equal(3, templates.Count()); var actual = templates[0]; Assert.Equal(temp1.Id, actual.Id); actual = templates[1]; Assert.Equal(temp3.Id, actual.Id); actual = templates[2]; Assert.Equal(temp5.Id, actual.Id); } }
public async Task UpdateUnknownCommissionTypes_CommissionErrors() { var options = TestHelper.GetDbContext("UpdateUnknownCommissionTypes_CommissionErrors"); var user1 = TestHelper.InsertUserDetailed(options); var company = TestHelper.InsertCompany(options); var commissionType1 = TestHelper.InsertCommissionType(options); var commissionType2 = TestHelper.InsertCommissionType(options); var template1 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid(), CompanyId = company.Id, Config = new Config() { Sheets = new List <Sheet>() { new Sheet() { Config = new SheetConfig() { CommissionTypes = new CommissionTypes() { Types = new List <CommissionType>() { new CommissionType() { CommissionTypeCode = commissionType1.Code, Value = "abc" }, new CommissionType() { CommissionTypeCode = commissionType2.Code, Value = "xyz" } } } } } } } }; var statement1 = new CommissionStatementEntity { Id = Guid.NewGuid(), CompanyId = company.Id, }; var statement2 = new CommissionStatementEntity { Id = Guid.NewGuid(), CompanyId = Guid.NewGuid(), }; var commission1 = new CommissionErrorEntity { Id = Guid.NewGuid(), CommissionTypeId = OneAdvisor.Model.Commission.Model.Lookup.CommissionType.COMMISSION_TYPE_UNKNOWN_ID, CommissionStatementId = statement1.Id, Data = new ImportCommission() { CommissionTypeValue = "abc" } }; var commission2 = new CommissionErrorEntity { Id = Guid.NewGuid(), CommissionTypeId = Guid.NewGuid(), CommissionStatementId = statement1.Id, Data = new ImportCommission() { CommissionTypeValue = "abc" } }; var commission3 = new CommissionErrorEntity { Id = Guid.NewGuid(), CommissionTypeId = OneAdvisor.Model.Commission.Model.Lookup.CommissionType.COMMISSION_TYPE_UNKNOWN_ID, CommissionStatementId = statement1.Id, Data = new ImportCommission() { CommissionTypeValue = "xyz" } }; //Different company var commission4 = new CommissionErrorEntity { Id = Guid.NewGuid(), CommissionTypeId = OneAdvisor.Model.Commission.Model.Lookup.CommissionType.COMMISSION_TYPE_UNKNOWN_ID, CommissionStatementId = statement2.Id, Data = new ImportCommission() { CommissionTypeValue = "abc" } }; using (var context = new DataContext(options)) { context.CommissionStatementTemplate.Add(template1); context.CommissionStatement.Add(statement1); context.CommissionError.Add(commission1); context.CommissionError.Add(commission2); context.CommissionError.Add(commission3); context.CommissionError.Add(commission4); context.SaveChanges(); } using (var context = new DataContext(options)) { List <CommissionErrorEntity> updatedCommissionErrors = null; var bulkActions = new Mock <IBulkActions>(MockBehavior.Strict); bulkActions.Setup(c => c.BulkUpdateCommissionErrorsAsync(It.IsAny <DataContext>(), It.IsAny <IList <CommissionErrorEntity> >())) .Callback((DataContext dc, IList <CommissionErrorEntity> errors) => { updatedCommissionErrors = errors.ToList(); }) .Returns(Task.CompletedTask); var service = new CommissionStatementTemplateService(context, null, bulkActions.Object); //When await service.UpdateUnknownCommissionTypes(template1.Id); //Then Assert.Equal(2, updatedCommissionErrors.Count); Assert.Equal(commission1.Id, updatedCommissionErrors[0].Id); Assert.Equal(commissionType1.Id, updatedCommissionErrors[0].CommissionTypeId); Assert.Equal(commissionType1.Code, updatedCommissionErrors[0].Data.CommissionTypeCode); Assert.Equal(commission3.Id, updatedCommissionErrors[1].Id); Assert.Equal(commissionType2.Id, updatedCommissionErrors[1].CommissionTypeId); Assert.Equal(commissionType2.Code, updatedCommissionErrors[1].Data.CommissionTypeCode); } }
public async Task GetTemplates() { var options = TestHelper.GetDbContext("GetTemplates"); //Given var temp1 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid(), CompanyId = Guid.NewGuid(), Name = "Template 1", StartDate = DateTime.Now.AddDays(-1), EndDate = DateTime.Now.AddDays(1), BrokerSpecific = true, Config = new Config() }; var temp2 = new CommissionStatementTemplateEntity { Id = Guid.NewGuid(), CompanyId = Guid.NewGuid(), Name = "Template 2", BrokerSpecific = false, StartDate = DateTime.Now.AddDays(-1), EndDate = DateTime.Now.AddDays(1), Config = new Config() }; using (var context = new DataContext(options)) { context.CommissionStatementTemplate.Add(temp1); context.CommissionStatementTemplate.Add(temp2); context.SaveChanges(); } using (var context = new DataContext(options)) { var service = new CommissionStatementTemplateService(context, null, null); //When var queryOptions = new CommissionStatementTemplateQueryOptions("", "", 0, 0); var actual = await service.GetTemplates(queryOptions); //Then Assert.Equal(2, actual.TotalItems); var templates = actual.Items.ToArray(); Assert.Equal(2, templates.Count()); var actual1 = templates[0]; Assert.Equal(temp1.Id, actual1.Id); Assert.Equal(temp1.Name, actual1.Name); Assert.Equal(temp1.CompanyId, actual1.CompanyId); Assert.Equal(temp1.StartDate, actual1.StartDate); Assert.Equal(temp1.EndDate, actual1.EndDate); Assert.Equal(temp1.BrokerSpecific, actual1.BrokerSpecific); var actual2 = templates[1]; Assert.Equal(temp2.Id, actual2.Id); Assert.Equal(temp2.Name, actual2.Name); Assert.Equal(temp2.CompanyId, actual2.CompanyId); Assert.Equal(temp2.StartDate, actual2.StartDate); Assert.Equal(temp2.EndDate, actual2.EndDate); Assert.Equal(temp2.BrokerSpecific, actual2.BrokerSpecific); } }