public static MockSolution InitializeWithNormalClassFile(this MockSolution s)
        {
            s.Projects.Add(
                new MockProject
            {
                AssemblyReferences =
                    ReferenceHelper.GetDefaultSystemReferences()
                    .ToList(),
                MockSourceFiles =
                {
                    MockSourceFile.CreateDefaultFile()
                }
            });

            return(s);
        }
        public static MockSolution InitializeWithTargetAndMixinInSeparateProjects(this MockSolution s)
        {
            s.Projects = new List <MockProject>
            {
                new MockProject
                {
                    AssemblyReferences =
                        ReferenceHelper.GetDefaultSystemReferences()
                        .Union(new [] { ReferenceHelper.GetReferenceToPMixinsDll() })
                        .ToList(),
                    MockSourceFiles =
                    {
                        new MockSourceFile
                        {
                            FileName = new FilePath(MockSolution.MockSolutionFolder, "Target.cs"),
                            Source   = @"
                                namespace Testing{
                                    [CopaceticSoftware.pMixins.Attributes.pMixin(Mixin = typeof(Mixin))]                                        
                                    public partial class Target  {}
                                }"
                        }
                    }
                },
                new MockProject
                {
                    FileName        = new FilePath(MockSolution.MockSolutionFolder, "OtherProject.csproj"),
                    MockSourceFiles =
                    {
                        new MockSourceFile
                        {
                            FileName = new FilePath(MockSolution.MockSolutionFolder, "Mixin.cs"),
                            Source   =
                                @"
                                namespace Testing{
                                    public class Mixin{ public int TestMethod(){return 42;} }                                    
                                }"
                        }
                    }
                },
            };

            s.Projects[0].ProjectReferences.Add(s.Projects[1]);

            return(s);
        }
        public static MockSolution InitializeWithTargetWithTwoMixins(this MockSolution s)
        {
            s.Projects.Add(
                new MockProject
            {
                AssemblyReferences =
                    ReferenceHelper.GetDefaultSystemReferences()
                    .Union(new[] { ReferenceHelper.GetReferenceToPMixinsDll() })
                    .ToList(),
                MockSourceFiles =
                {
                    new MockSourceFile
                    {
                        FileName = new FilePath(MockSolution.MockSolutionFolder, "Mixin1.cs"),
                        Source   =
                            @"
                                namespace Testing{
                                    public class Mixin1{ public int TestMethod1(){return 42;} }
                                }"
                    },
                    new MockSourceFile
                    {
                        FileName = new FilePath(MockSolution.MockSolutionFolder, "Mixin2.cs"),
                        Source   =
                            @"
                                namespace Testing{
                                    public class Mixin2{ public int TestMethod2(){return 42;} }
                                }"
                    },
                    new MockSourceFile
                    {
                        FileName = new FilePath(MockSolution.MockSolutionFolder, "Target.cs"),
                        Source   = @"
                                namespace Testing{
                                    [CopaceticSoftware.pMixins.Attributes.pMixin(Mixin = typeof(Mixin1))]                                        
                                    [CopaceticSoftware.pMixins.Attributes.pMixin(Mixin = typeof(Mixin2))]  
                                    public partial class Target  {}
                                }"
                    }
                }
            });

            return(s);
        }