public void ProjectPropertyChanged_WhenParentIdOfAProjectChanges_RepositoryAddChangedProjectToCorrectParentsChildList()
        {
            var parentProjectRef = new projectref { href = "projectParentHref" };
            var childProjectRef = new projectref { href = "projectChildHref" };

            var projectRefList = new List<projectref>
            {
                parentProjectRef,
                childProjectRef
            };

            var projects1Dto = new projects1
            {
                project = projectRefList
            };

            var parentProjectDto = new project { id = "parentProject", parentProject = new projectref (), buildTypes = new List<buildTyperef>()};
            var childProjectDto = new project { id = "childProject", parentProject = new projectref { id = "parentProject" },  buildTypes = new List<buildTyperef>()};

            this.testee.SetData(projects1Dto);

            var parentProject =  this.testee.Projects.First(project => project.Url == parentProjectRef.href);
            var childProject = this.testee.Projects.First(project => project.Url == childProjectRef.href);

            parentProject.SetData(parentProjectDto);
            childProject.SetData(childProjectDto);

            this.testee.Projects.First(project => project.Url == parentProject.Url).ChildProjects.Should().Contain(childProject);
        }
        public void ProjectPropertyChanged_WhenParentIdOfAProjectChanges_RepositoryRemovesChangedProjectFromParentsChildList()
        {
            var parentProjectRef = new projectref { href = "projectParentHref" };
            var secondParentProjectRef = new projectref { href = "secondProjectParentHref" };
            var childProjectRef = new projectref { href = "projectChildHref" };

            var projectRefList = new List<projectref>
            {
                parentProjectRef,
                secondParentProjectRef,
                childProjectRef
            };

            var projects1Dto = new projects1
            {
                project = projectRefList
            };

            var parentProjectDto = new project { id = "parentProject", parentProject = new projectref(), buildTypes = new List<buildTyperef>() };
            var secondParentProjectDto = new project { id = "secondParentProject", parentProject = new projectref(), buildTypes = new List<buildTyperef>() };
            var childProjectDto = new project { id = "childProject", parentProject = new projectref { id = "parentProject" }, buildTypes = new List<buildTyperef>() };
            var changedParentchildProjectDto = new project { id = "childProject", parentProject = new projectref { id = "secondParentProject" }, buildTypes = new List<buildTyperef>() };

            this.testee.SetData(projects1Dto);

            var parentProject = this.testee.Projects.First(project => project.Url == parentProjectRef.href);
            var secondParentProject = this.testee.Projects.First(project => project.Url == secondParentProjectRef.href);
            var childProject = this.testee.Projects.First(project => project.Url == childProjectRef.href);

            parentProject.SetData(parentProjectDto);
            secondParentProject.SetData(secondParentProjectDto);
            childProject.SetData(childProjectDto);

            childProject.SetData(changedParentchildProjectDto);

            this.testee.Projects.First(project => project.Url == parentProject.Url).ChildProjects.Should().BeEmpty();
        }
 public vcsroot()
 {
     this.vcsRootInstancesField = new HReference();
     this.propertiesField = new List<property>();
     this.projectField = new projectref();
 }
 public project()
 {
     this.projectsField = new List<projectref>();
     this.vcsRootsField = new HReference();
     this.parametersField = new List<property>();
     this.templatesField = new List<buildTyperef>();
     this.buildTypesField = new List<buildTyperef>();
     this.parentProjectField = new projectref();
 }
 public newProjectDescription()
 {
     this.parentProjectField = new projectref();
     this.sourceProjectField = new projectref();
 }
 public buildType()
 {
     this.agentrequirementsField = new List<propEntityAgentRequirement>();
     this.artifactdependenciesField = new List<propEntityArtifactDep>();
     this.snapshotdependenciesField = new List<propEntitySnapshotDep>();
     this.triggersField = new List<propEntityTrigger>();
     this.featuresField = new List<propEntityFeature>();
     this.stepsField = new List<propEntityStep>();
     this.parametersField = new List<property>();
     this.settingsField = new List<property>();
     this.vcsrootentriesField = new List<vcsrootentry>();
     this.buildsField = new buildsref();
     this.templateField = new buildTyperef();
     this.projectField = new projectref();
 }