public void Add_An_Object_Graph() { //arrange var bodyParameter = new EqualsBinaryOperatorParameters ( new MemberSelectorOperatorParameters("FullName", new ParameterOperatorParameters(parameterName)), new ConstantOperatorParameters("Roger Milla") ); //act DoTest <StudentModel, Student> ( bodyParameter, null, new SelectExpandDefinitionParameters { ExpandedItems = new List <SelectExpandItemParameters> { new SelectExpandItemParameters { MemberName = "Enrollments" } } }, parameterName, (StudentModel studentModel, ISchoolRepository repository) => { PersistenceOperations <StudentModel, Student> .SaveGraph ( repository, new StudentModel { EntityState = LogicBuilder.Domain.EntityStateType.Added, EnrollmentDate = new DateTime(2021, 2, 8), Enrollments = new List <EnrollmentModel> { new EnrollmentModel { CourseID = 1050, Grade = Domain.Entities.Grade.A }, new EnrollmentModel { CourseID = 4022, Grade = Domain.Entities.Grade.A }, new EnrollmentModel { CourseID = 4041, Grade = Domain.Entities.Grade.A } }, FirstName = "Roger", LastName = "Milla" } ); }, returnValue => { Assert.Equal(new DateTime(2021, 2, 8), returnValue.EnrollmentDate); Assert.Equal(3, returnValue.Enrollments.Count()); }, "$it => ($it.FullName == \"Roger Milla\")" ); }
public void Add_An_Entry_To_A_Child_Collection() { //arrange var bodyParameter = new EqualsBinaryOperatorParameters ( new MemberSelectorOperatorParameters("FullName", new ParameterOperatorParameters(parameterName)), new ConstantOperatorParameters("Carson Alexander") ); //act DoTest <StudentModel, Student> ( bodyParameter, null, new SelectExpandDefinitionParameters { ExpandedItems = new List <SelectExpandItemParameters> { new SelectExpandItemParameters { MemberName = "Enrollments" } } }, parameterName, (StudentModel studentModel, ISchoolRepository repository) => { studentModel.EnrollmentDate = new DateTime(2021, 2, 8); studentModel.Enrollments.Add ( new EnrollmentModel { CourseID = 3141, Grade = Domain.Entities.Grade.B, EntityState = LogicBuilder.Domain.EntityStateType.Added } ); studentModel.EntityState = LogicBuilder.Domain.EntityStateType.Modified; PersistenceOperations <StudentModel, Student> .SaveGraph(repository, studentModel); }, returnValue => { Assert.Equal(new DateTime(2021, 2, 8), returnValue.EnrollmentDate); Assert.Equal(Domain.Entities.Grade.B, returnValue.Enrollments.Single(e => e.CourseID == 3141).Grade); Assert.Equal(4, returnValue.Enrollments.Count()); }, "$it => ($it.FullName == \"Carson Alexander\")" ); }