public FakeSolutionBuilder AddProject() { var newProject = new FakeProject("Project" + projectCount++); foreach (var project in _projects) { // each project references the ones that came before it. newProject.AddReference(new ProjectReference(project.Name)); } _projects.Add(newProject); return this; }
public FakeSolutionBuilder AddProject() { var newProject = new FakeProject("Project" + projectCount++); foreach (var project in _projects) { // each project references the ones that came before it. newProject.AddReference(new ProjectReference(project.Name)); } _projects.Add(newProject); return(this); }
public void ShouldNotAddCircularReference() { var projectOne = CreateDefaultProject(); var projectTwoId = Guid.NewGuid(); var projectTwo = new FakeProject("faketwo", @"c:\test\two\fake2.csproj", projectTwoId); projectTwo.Title = "Project Two"; projectTwo.AddFile("some content", @"c:\test\two\test.cs"); projectTwo.AddReference(new ProjectReference(Solution, "Project One")); var xml = string.Format(@" <Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003""> <ItemGroup> <Compile Include=""Test.cs""/> </ItemGroup> <ItemGroup> <ProjectReference Include=""..\one\fake1.csproj""> <Project>{0}</Project> <Name>Project One</Name> </ProjectReference> </ItemGroup> </Project>", string.Concat("{", projectOne.ProjectId.ToString().ToUpperInvariant(), "}")); var expectedXml = XDocument.Parse(xml); projectTwo.XmlRepresentation = XDocument.Parse(xml); Solution.Projects.Add(projectOne); Solution.Projects.Add(projectTwo); var request = new AddReferenceRequest { Reference = @"fake2", FileName = @"c:\test\one\test.cs" }; var handler = new AddReferenceHandler(Solution, new AddReferenceProcessorFactory(Solution, new IReferenceProcessor[] { new AddProjectReferenceProcessor(Solution) })); var response = handler.AddReference(request); projectTwo.AsXml().ToString().ShouldEqual(expectedXml.ToString()); response.Message.ShouldEqual("Reference will create circular dependency"); }
public void ShouldNotAddCircularReference() { var projectOne = CreateDefaultProject(); var projectTwoId = Guid.NewGuid(); var projectTwo = new FakeProject("faketwo", @"c:\test\two\fake2.csproj", projectTwoId); projectTwo.Title = "Project Two"; projectTwo.AddFile("some content", @"c:\test\two\test.cs"); projectTwo.AddReference(new ProjectReference(Solution, "Project One", projectOne.ProjectId)); var xml = string.Format(@" <Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003""> <ItemGroup> <Compile Include=""Test.cs""/> </ItemGroup> <ItemGroup> <ProjectReference Include=""..\one\fake1.csproj""> <Project>{0}</Project> <Name>Project One</Name> </ProjectReference> </ItemGroup> </Project>", string.Concat("{", projectOne.ProjectId.ToString().ToUpperInvariant(), "}")); var expectedXml = XDocument.Parse(xml); projectTwo.XmlRepresentation = XDocument.Parse(xml); Solution.Projects.Add(projectOne); Solution.Projects.Add(projectTwo); var request = new AddReferenceRequest { Reference = @"fake2", FileName = @"c:\test\one\test.cs" }; var handler = new AddReferenceHandler(Solution, new AddReferenceProcessorFactory(Solution, new IReferenceProcessor[] { new AddProjectReferenceProcessor(Solution) }, new NativeFileSystem())); var response = handler.AddReference(request); projectTwo.AsXml().ToString().ShouldEqual(expectedXml.ToString()); response.Message.ShouldEqual("Reference will create circular dependency"); }