public void create_solution_add_project_save_and_reload_2()
        {
            // Yeah, this is a big bang test.  Just go with it.

            var solution = Solution.CreateNew("TestSolution", "Lib1.TestSolution");

            var reference = solution.AddProject("TestProject");

            reference.ProjectGuid.ShouldNotEqual(Guid.Empty);
            reference.ProjectName.ShouldEqual("TestProject");
            reference.RelativePath.ShouldEqual("TestProject".AppendPath("TestProject.csproj"));

            var plan = new ProjectPlan(reference.ProjectName);

            CodeFileTemplate.Class("Foo").Alter(reference.Project, plan);
            CodeFileTemplate.Class("Bar").Alter(reference.Project, plan);

            solution.Save();

            File.Exists("TestSolution".AppendPath("Lib1.TestSolution.sln")).ShouldBeTrue();
            File.Exists("TestSolution".AppendPath("TestProject", "TestProject.csproj")).ShouldBeTrue();

            var solution2  = Solution.LoadFrom("TestSolution".AppendPath("Lib1.TestSolution.sln"));
            var reference2 = solution2.FindProject("TestProject");

            reference2.ShouldNotBeNull();

            var project2 = reference2.Project;

            project2.ShouldNotBeNull();

            project2.All <CodeFile>().OrderBy(x => x.Include)
            .Select(x => x.Include)
            .ShouldHaveTheSameElementsAs("Bar.cs", "Foo.cs");
        }
Ejemplo n.º 2
0
        public void add_deeper_class_to_root_of_project()
        {
            CodeFileTemplate.Class(Path.Combine("Bar", "Doer")).Alter(theProject, thePlan);

            var file = "Templated".AppendPath("TemplatedProject", "Bar", "Doer.cs");

            File.Exists(file).ShouldBeTrue();

            new FileSystem().ReadStringFromFile(file).ShouldEqualWithLineEndings(@"
namespace TemplatedProject.Bar
{
    public class Doer
    {

    }
}
".Trim());

            theProject.All <CodeFile>().Any(x => x.Include == "Bar\\Doer.cs")
            .ShouldBeTrue();
        }
Ejemplo n.º 3
0
        public void add_simple_class_to_root_of_project()
        {
            CodeFileTemplate.Class("Foo").Alter(theProject, thePlan);

            var file = "Templated".AppendPath("TemplatedProject", "Foo.cs");

            File.Exists(file).ShouldBeTrue();

            new FileSystem().ReadStringFromFile(file).ShouldEqualWithLineEndings(@"
namespace TemplatedProject
{
    public class Foo
    {

    }
}
".Trim());

            theProject.All <CodeFile>().Any(x => x.Include == "Foo.cs")
            .ShouldBeTrue();
        }
Ejemplo n.º 4
0
        public void add_simple_class_that_has_substitutions_on_its_name()
        {
            thePlan.Substitutions.Set("%SHORT_NAME%", "MyFoo");

            CodeFileTemplate.Class("%SHORT_NAME%Registry").Alter(theProject, thePlan);

            var file = "Templated".AppendPath("TemplatedProject", "MyFooRegistry.cs");

            File.Exists(file).ShouldBeTrue();

            new FileSystem().ReadStringFromFile(file).ShouldEqualWithLineEndings(@"
namespace TemplatedProject
{
    public class MyFooRegistry
    {

    }
}
".Trim());

            theProject.All <CodeFile>().Any(x => x.Include == "MyFooRegistry.cs")
            .ShouldBeTrue();
        }