Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }