/// <summary> /// Creates the builder /// </summary> /// <param name="referenceBuilderFactory">Interface to create new reference builder instances</param> /// <param name="sourceSetDependencyFactory">Interface to create new source set dependencies</param> /// <param name="project">The project for which the csproj file will be generated</param> /// <param name="suite">The suite the project belongs to </param> /// <param name="targetDir">The build target directory </param> /// <param name="generator">The csproj generator class to be used</param> public CsprojBuilder(IReferenceBuilderFactory referenceBuilderFactory, ISourceSetDependencyFactory sourceSetDependencyFactory, Project project, Suite suite, [TargetRoot] IFileSystemDirectory targetDir, CsprojGenerator generator) { this.referenceBuilderFactory = referenceBuilderFactory; this.sourceSetDependencyFactory = sourceSetDependencyFactory; this.project = project; this.suite = suite; this.targetDir = targetDir; this.generator = generator; }
public void SectionsAreCalled() { var secA = new Mock <IMSBuildProjectSection>(); var secB = new Mock <IMSBuildProjectSection>(); var secC = new Mock <IMSBuildProjectSection>(); var project = new Project("testproject", new Module("testmodule", new Suite(new TestFileSystemDirectory("test")))); var refs = new[] { new TargetRelativePath(String.Empty, "test") }; using (var output = new StringWriter()) using (var versionOutput = new StringWriter()) { var generator = new CsprojGenerator(new[] { secA.Object, secB.Object, secC.Object }); generator.Generate(project, refs, output, versionOutput, "version.cs"); secA.Verify(s => s.Write(It.IsAny <XmlWriter>(), project, It.IsAny <IMSBuildProjectGeneratorContext>()), Times.Once()); secB.Verify(s => s.Write(It.IsAny <XmlWriter>(), project, It.IsAny <IMSBuildProjectGeneratorContext>()), Times.Once()); secC.Verify(s => s.Write(It.IsAny <XmlWriter>(), project, It.IsAny <IMSBuildProjectGeneratorContext>()), Times.Once()); } }