コード例 #1
0
        public void ShouldCorrectlySetEntityStatesForAddedObjectGraph()
        {
            //arrange
            DataFormSettingsDescriptor formDescriptor = Descriptors.AcademicForm;
            AcademicModel academicModel = null;

            ObservableCollection <IValidatable> modifiedProperties   = CreateValidatablesFormSettings(formDescriptor, typeof(AcademicModel));
            IDictionary <string, IValidatable>  propertiesDictionary = modifiedProperties.ToDictionary(property => property.Name);

            propertiesDictionary["LastHighSchoolLocation"].Value = "NC";
            propertiesDictionary["NcHighSchoolName"].Value       = "NCSCHOOL1";
            propertiesDictionary["FromDate"].Value          = new DateTime(2019, 5, 20);
            propertiesDictionary["ToDate"].Value            = new DateTime(2021, 5, 20);
            propertiesDictionary["GraduationStatus"].Value  = "DP";
            propertiesDictionary["EarnedCreditAtCmc"].Value = true;
            propertiesDictionary["Institutions"].Value      = new ObservableCollection <InstitutionModel>
                                                              (
                new List <InstitutionModel>
            {
                new InstitutionModel
                {
                    InstitutionId       = 1,
                    InstitutionState    = "FL",
                    InstitutionName     = "I1",
                    StartYear           = "2011",
                    EndYear             = "2013",
                    HighestDegreeEarned = "CT"
                },
                new InstitutionModel
                {
                    InstitutionId       = 2,
                    InstitutionState    = "GA",
                    InstitutionName     = "I1",
                    StartYear           = "2012",
                    EndYear             = "2014",
                    HighestDegreeEarned = "DP"
                },
                new InstitutionModel
                {
                    InstitutionId       = 4,
                    InstitutionState    = "AL",
                    InstitutionName     = "I2",
                    StartYear           = "2016",
                    EndYear             = "2019",
                    HighestDegreeEarned = "MA"
                }
            }
                                                              );

            AcademicModel currentAcademic = serviceProvider.GetRequiredService <IEntityStateUpdater>().GetUpdatedModel
                                            (
                academicModel,
                academicModel.EntityToObjectDictionary
                (
                    serviceProvider.GetRequiredService <IMapper>(),
                    formDescriptor.FieldSettings
                ),
                modifiedProperties,
                formDescriptor.FieldSettings
                                            );

            Assert.Equal(LogicBuilder.Domain.EntityStateType.Added, currentAcademic.EntityState);
            Assert.Equal(LogicBuilder.Domain.EntityStateType.Added, currentAcademic.Institutions.Single(c => c.InstitutionId == 1).EntityState);
            Assert.Equal(LogicBuilder.Domain.EntityStateType.Added, currentAcademic.Institutions.Single(c => c.InstitutionId == 2).EntityState);
            Assert.Equal(LogicBuilder.Domain.EntityStateType.Added, currentAcademic.Institutions.Single(c => c.InstitutionId == 4).EntityState);
            Assert.Equal(3, currentAcademic.Institutions.Count);
        }