public void MapIValidatableListToResidency_WnenMultiSelectFieldNotRequired() { //arrange ObservableCollection <IValidatable> properties = serviceProvider.GetRequiredService <IFieldsCollectionBuilder>().CreateFieldsCollection ( Descriptors.ResidencyForm, typeof(ResidencyModel) ).Properties; IDictionary <string, IValidatable> propertiesDictionary = properties.ToDictionary(property => property.Name); propertiesDictionary["UserId"].Value = 3; propertiesDictionary["CitizenshipStatus"].Value = "US"; propertiesDictionary["ResidentState"].Value = "OH"; propertiesDictionary["HasValidDriversLicense"].Value = true; //act ResidencyModel residencyModel = serviceProvider.GetRequiredService <IEntityStateUpdater>().GetUpdatedModel ( (ResidencyModel)null, new Dictionary <string, object>(), properties, Descriptors.ResidencyForm.FieldSettings ); //assert Assert.Equal(3, residencyModel.UserId); Assert.Equal("US", residencyModel.CitizenshipStatus); Assert.Equal("OH", residencyModel.ResidentState); Assert.True(residencyModel.HasValidDriversLicense); Assert.Null(residencyModel.StatesLivedIn); }
public void Map_Residency_model_with_location_to_residency() { ResidencyModel residency = new ResidencyModel { CitizenshipStatus = "US", CountryOfCitizenship = "AA", DriversLicenseNumber = "NC12345", DriversLicenseState = "NC", EntityState = LogicBuilder.Domain.EntityStateType.Added, HasValidDriversLicense = true, ImmigrationStatus = "BB", ResidentState = "AR", UserId = 7, StatesLivedIn = new List <StateLivedInModel> { new StateLivedInModel { EntityState = LogicBuilder.Domain.EntityStateType.Added, State = "OH" }, new StateLivedInModel { EntityState = LogicBuilder.Domain.EntityStateType.Deleted, State = "TN", UserId = 7, StateLivedInId = 41 } } }; Residency mapped = mapper.Map <Residency>(residency); Assert.Equal("US", mapped.CitizenshipStatus); Assert.Equal("OH", mapped.StatesLivedIn.First().State); Assert.Equal(LogicBuilder.Data.EntityStateType.Added, mapped.StatesLivedIn.First().EntityState); }
public void MapIValidatableListToResidency() { //arrange ObservableCollection <IValidatable> properties = serviceProvider.GetRequiredService <IFieldsCollectionBuilder>().CreateFieldsCollection ( Descriptors.ResidencyForm, typeof(ResidencyModel) ).Properties; IDictionary <string, IValidatable> propertiesDictionary = properties.ToDictionary(property => property.Name); propertiesDictionary["UserId"].Value = 3; propertiesDictionary["CitizenshipStatus"].Value = "US"; propertiesDictionary["ResidentState"].Value = "OH"; propertiesDictionary["HasValidDriversLicense"].Value = true; propertiesDictionary["StatesLivedIn"].Value = new ObservableCollection <StateLivedInModel> ( new List <StateLivedInModel> { new StateLivedInModel { StateLivedInId = 1, UserId = 3, State = "GA" }, new StateLivedInModel { StateLivedInId = 2, UserId = 3, State = "MI" }, new StateLivedInModel { StateLivedInId = 4, UserId = 3, State = "IN" } } ); //act ResidencyModel residencyModel = serviceProvider.GetRequiredService <IEntityStateUpdater>().GetUpdatedModel ( (ResidencyModel)null, new Dictionary <string, object>(), properties, Descriptors.ResidencyForm.FieldSettings ); //assert Assert.Equal(3, residencyModel.UserId); Assert.Equal("US", residencyModel.CitizenshipStatus); Assert.Equal("OH", residencyModel.ResidentState); Assert.True(residencyModel.HasValidDriversLicense); Assert.Equal("GA", residencyModel.StatesLivedIn.First().State); }
public void MapResidencyModelToIValidatableList() { //arrange ResidencyModel residency = new ResidencyModel { UserId = 3, CitizenshipStatus = "US", ResidentState = "OH", HasValidDriversLicense = true, StatesLivedIn = new List <StateLivedInModel> { new StateLivedInModel { StateLivedInId = 1, UserId = 3, State = "GA" }, new StateLivedInModel { StateLivedInId = 2, UserId = 3, State = "MI" }, new StateLivedInModel { StateLivedInId = 3, UserId = 3, State = "OH" } } }; ObservableCollection <IValidatable> properties = serviceProvider.GetRequiredService <IFieldsCollectionBuilder>().CreateFieldsCollection ( Descriptors.ResidencyForm, typeof(ResidencyModel) ).Properties; //act serviceProvider.GetRequiredService <IPropertiesUpdater>().UpdateProperties ( properties, residency, Descriptors.ResidencyForm.FieldSettings ); //assert IDictionary <string, object> propertiesDictionary = properties.ToDictionary(property => property.Name, property => property.Value); Assert.Equal(3, propertiesDictionary["UserId"]); Assert.Equal("US", propertiesDictionary["CitizenshipStatus"]); Assert.Equal("OH", propertiesDictionary["ResidentState"]); Assert.Equal(true, propertiesDictionary["HasValidDriversLicense"]); Assert.Equal("GA", ((IEnumerable <StateLivedInModel>)propertiesDictionary["StatesLivedIn"]).First().State); }
public void SaveResidency() { //arrange IFlowManager flowManager = serviceProvider.GetRequiredService <IFlowManager>(); var user = new UserModel { UserName = "******", EntityState = LogicBuilder.Domain.EntityStateType.Added }; flowManager.FlowDataCache.Request = new SaveEntityRequest { Entity = user }; flowManager.Start("saveuser"); Assert.True(user.UserId > 1); var residency = new ResidencyModel { UserId = user.UserId, CitizenshipStatus = "US", DriversLicenseNumber = "NC12345", DriversLicenseState = "NC", EntityState = LogicBuilder.Domain.EntityStateType.Added, HasValidDriversLicense = true, ImmigrationStatus = "AA", ResidentState = "AR", StatesLivedIn = new List <StateLivedInModel> { new StateLivedInModel { EntityState = LogicBuilder.Domain.EntityStateType.Added, State = "OH" } } }; flowManager.FlowDataCache.Request = new SaveEntityRequest { Entity = residency }; //act System.Diagnostics.Stopwatch stopWatch = System.Diagnostics.Stopwatch.StartNew(); flowManager.Start("saveresidency"); stopWatch.Stop(); this.output.WriteLine("Saving valid residency = {0}", stopWatch.Elapsed.TotalMilliseconds); //assert Assert.True(flowManager.FlowDataCache.Response.Success); Assert.Empty(flowManager.FlowDataCache.Response.ErrorMessages); ResidencyModel model = (ResidencyModel)((SaveEntityResponse)flowManager.FlowDataCache.Response).Entity; Assert.Equal("NC12345", model.DriversLicenseNumber); Assert.Equal("OH", model.StatesLivedIn.First().State); }
public void SaveResidency() { //arrange IFlowManager flowManager = serviceProvider.GetRequiredService <IFlowManager>(); var residency = flowManager.EnrollmentRepository.GetAsync <ResidencyModel, Residency> ( s => s.UserId == 1, null, new LogicBuilder.Expressions.Utils.Expansions.SelectExpandDefinition { ExpandedItems = new System.Collections.Generic.List <LogicBuilder.Expressions.Utils.Expansions.SelectExpandItem> { new LogicBuilder.Expressions.Utils.Expansions.SelectExpandItem { MemberName = "StatesLivedIn" } } } ).Result.Single(); residency.DriversLicenseNumber = "NC54321"; StateLivedInModel stateLivedIn = residency.StatesLivedIn.First(); stateLivedIn.State = "OH"; residency.EntityState = LogicBuilder.Domain.EntityStateType.Modified; stateLivedIn.EntityState = LogicBuilder.Domain.EntityStateType.Modified; flowManager.FlowDataCache.Request = new SaveEntityRequest { Entity = residency }; //act System.Diagnostics.Stopwatch stopWatch = System.Diagnostics.Stopwatch.StartNew(); flowManager.Start("saveresidency"); stopWatch.Stop(); this.output.WriteLine("Saving valid residency = {0}", stopWatch.Elapsed.TotalMilliseconds); //assert Assert.True(flowManager.FlowDataCache.Response.Success); Assert.Empty(flowManager.FlowDataCache.Response.ErrorMessages); ResidencyModel model = (ResidencyModel)((SaveEntityResponse)flowManager.FlowDataCache.Response).Entity; Assert.Equal("NC54321", model.DriversLicenseNumber); Assert.Equal("OH", model.StatesLivedIn.First().State); }
public void SaveInvalidResidency() { //arrange IFlowManager flowManager = serviceProvider.GetRequiredService <IFlowManager>(); var user = new UserModel { UserName = "******", EntityState = LogicBuilder.Domain.EntityStateType.Added }; flowManager.FlowDataCache.Request = new SaveEntityRequest { Entity = user }; flowManager.Start("saveuser"); Assert.True(user.UserId > 1); var residency = new ResidencyModel { UserId = user.UserId, CitizenshipStatus = null, CountryOfCitizenship = "AA", ResidentState = null, EntityState = LogicBuilder.Domain.EntityStateType.Added, HasValidDriversLicense = true, DriversLicenseNumber = null, DriversLicenseState = null, StatesLivedIn = new List <StateLivedInModel>() }; flowManager.FlowDataCache.Request = new SaveEntityRequest { Entity = residency }; //act System.Diagnostics.Stopwatch stopWatch = System.Diagnostics.Stopwatch.StartNew(); flowManager.Start("saveresidency"); stopWatch.Stop(); this.output.WriteLine("Saving valid residency = {0}", stopWatch.Elapsed.TotalMilliseconds); //assert Assert.False(flowManager.FlowDataCache.Response.Success); Assert.Equal(5, flowManager.FlowDataCache.Response.ErrorMessages.Count); }
public void MapResidencyModelToIReadOnlyList() { //arrange ResidencyModel residency = new ResidencyModel { UserId = 3, CitizenshipStatus = "US", ResidentState = "OH", HasValidDriversLicense = true, StatesLivedIn = new List <StateLivedInModel> { new StateLivedInModel { StateLivedInId = 1, UserId = 3, State = "GA" }, new StateLivedInModel { StateLivedInId = 2, UserId = 3, State = "MI" }, new StateLivedInModel { StateLivedInId = 3, UserId = 3, State = "OH" } } }; List <ItemBindingDescriptor> itemBindings = new List <ItemBindingDescriptor> { new TextItemBindingDescriptor { Name = "Text", Property = "UserId", StringFormat = "{0}", TextTemplate = new TextFieldTemplateDescriptor { TemplateName = "TextTemplate" } }, new DropDownItemBindingDescriptor { Name = "Detail", Property = "CitizenshipStatus", StringFormat = "{0}", DropDownTemplate = Descriptors.ResidencyForm.FieldSettings.OfType <FormControlSettingsDescriptor>().Single(f => f.Field == "CitizenshipStatus").DropDownTemplate }, new MultiSelectItemBindingDescriptor { Name = "Detail", Property = "StatesLivedIn", StringFormat = "{0}", MultiSelectTemplate = Descriptors.ResidencyForm.FieldSettings.OfType <MultiSelectFormControlSettingsDescriptor>().Single(f => f.Field == "StatesLivedIn").MultiSelectTemplate } }; ICollection <IReadOnly> properties = serviceProvider.GetRequiredService <ICollectionCellItemsBuilder>().CreateCellsCollection ( itemBindings, typeof(ResidencyModel) ); //act serviceProvider.GetRequiredService <IReadOnlyCollectionCellPropertiesUpdater>().UpdateProperties ( properties, typeof(ResidencyModel), residency, itemBindings ); //assert IDictionary <string, object> propertiesDictionary = properties.ToDictionary(property => property.Name, property => property.Value); Assert.Equal(3, propertiesDictionary["UserId"]); Assert.Equal("US", propertiesDictionary["CitizenshipStatus"]); Assert.Equal("GA", ((IEnumerable <StateLivedInModel>)propertiesDictionary["StatesLivedIn"]).First().State); }
public void ShouldCorrectlySetEntityStatesForMultiSelects() { //arrange DataFormSettingsDescriptor formDescriptor = Descriptors.ResidencyForm; ResidencyModel residencyModel = new ResidencyModel { UserId = 3, CitizenshipStatus = "US", ResidentState = "OH", HasValidDriversLicense = true, StatesLivedIn = new List <StateLivedInModel> { new StateLivedInModel { StateLivedInId = 1, UserId = 3, State = "GA" }, new StateLivedInModel { StateLivedInId = 2, UserId = 3, State = "MI" }, new StateLivedInModel { StateLivedInId = 3, UserId = 3, State = "OH" } } }; ObservableCollection <IValidatable> modifiedProperties = CreateValidatablesFormSettings(formDescriptor, typeof(ResidencyModel)); IDictionary <string, IValidatable> propertiesDictionary = modifiedProperties.ToDictionary(property => property.Name); propertiesDictionary["UserId"].Value = 3; propertiesDictionary["CitizenshipStatus"].Value = "US"; propertiesDictionary["ResidentState"].Value = "OH"; propertiesDictionary["HasValidDriversLicense"].Value = true; propertiesDictionary["StatesLivedIn"].Value = new ObservableCollection <StateLivedInModel> ( new List <StateLivedInModel> { new StateLivedInModel { StateLivedInId = 1, UserId = 3, State = "GA" }, new StateLivedInModel { StateLivedInId = 2, UserId = 3, State = "MI" }, new StateLivedInModel { StateLivedInId = 4, UserId = 3, State = "IN" } } ); ResidencyModel currentResidency = serviceProvider.GetRequiredService <IEntityStateUpdater>().GetUpdatedModel ( residencyModel, residencyModel.EntityToObjectDictionary ( serviceProvider.GetRequiredService <IMapper>(), formDescriptor.FieldSettings ), modifiedProperties, formDescriptor.FieldSettings ); Assert.Equal(LogicBuilder.Domain.EntityStateType.Modified, currentResidency.EntityState); Assert.Equal(LogicBuilder.Domain.EntityStateType.Unchanged, currentResidency.StatesLivedIn.Single(c => c.State == "GA").EntityState); Assert.Equal(LogicBuilder.Domain.EntityStateType.Unchanged, currentResidency.StatesLivedIn.Single(c => c.State == "MI").EntityState); Assert.Equal(LogicBuilder.Domain.EntityStateType.Deleted, currentResidency.StatesLivedIn.Single(c => c.State == "OH").EntityState); Assert.Equal(LogicBuilder.Domain.EntityStateType.Added, currentResidency.StatesLivedIn.Single(c => c.State == "IN").EntityState); Assert.Equal(4, currentResidency.StatesLivedIn.Count); }