コード例 #1
0
        public static MockSolution InitializeWithTargetAndMixinInSeparateClass(this MockSolution s)
        {
            s.Projects.Add(
                new MockProject
            {
                AssemblyReferences =
                    ReferenceHelper.GetDefaultSystemReferences()
                    .Union(new[] { ReferenceHelper.GetReferenceToPMixinsDll() })
                    .ToList(),
                MockSourceFiles =
                {
                    new MockSourceFile
                    {
                        FileName = new FilePath(MockSolution.MockSolutionFolder, "Mixin.cs"),
                        Source   =
                            @"
                                namespace Testing{
                                    public class Mixin{ public int TestMethod(){return 42;} }
                                }"
                    },
                    new MockSourceFile
                    {
                        FileName = new FilePath(MockSolution.MockSolutionFolder, "Target.cs"),
                        Source   = @"
                                namespace Testing{
                                    [CopaceticSoftware.pMixins.Attributes.pMixin(Mixin = typeof(Mixin))]                                        
                                    public partial class Target  {}
                                }"
                    }
                }
            });

            return(s);
        }
コード例 #2
0
        public static MockSolution InitializeWithInvalidTargetFile(this MockSolution s)
        {
            s.Projects.Add(
                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(MixinDoesNotExist))]                                        
                                    public partial class Target  {}
                                }
                                ",
                    }
                }
            });

            return(s);
        }
コード例 #3
0
        public static MockSourceFile[] RemoveFiles(this MockSolution solution,
                                                   Func <MockSolution, IEnumerable <MockSourceFile> > sourceFilesFunc)
        {
            var files = sourceFilesFunc(solution);

            return
                (null == files
                ? new MockSourceFile[0]
                : files
                 .Select(f => RemoveFile(solution, f))
                 .ToArray());
        }
コード例 #4
0
        public static void AssertCompilesAndCanExecuteMethod(
            this MockSourceFile file,
            MockSolution solution,
            string methodName = MockSolutionInitializer.DefaultMixinMethodName,
            int returnValue   = MockSolutionInitializer.DefaultMixinMethodReturnValue)
        {
            MockProject project = solution.Projects.FirstOrDefault(p => p.ContainsFile(file));

            Assert.NotNull(project, "Failed to find Project for File [" + file.FileName + "]");

            AssertCompilesAndCanExecuteMethod <int>(
                project,
                "Testing." + file.Classname,
                methodName,
                returnValue);
        }
コード例 #5
0
        public static MockSolution InitializeWithNormalClassFile(this MockSolution s)
        {
            s.Projects.Add(
                new MockProject
            {
                AssemblyReferences =
                    ReferenceHelper.GetDefaultSystemReferences()
                    .ToList(),
                MockSourceFiles =
                {
                    MockSourceFile.CreateDefaultFile()
                }
            });

            return(s);
        }
コード例 #6
0
        public static MockSolution InitializeWithChainedMixinInSeparateFiles(this MockSolution s)
        {
            s.InitializeWithTargetAndMixinInSeparateClass();

            s.Projects[0].MockSourceFiles.Add(new MockSourceFile("Chained")
            {
                FileName = new FilePath(MockSolution.MockSolutionFolder, "Chained.cs"),
                Source   = @"
                    namespace Testing{
                        [CopaceticSoftware.pMixins.Attributes.pMixin(Mixin = typeof(Target))]                                        
                        public partial class Chained  {}
                    }"
            });

            return(s);
        }
コード例 #7
0
        public static MockSourceFile RemoveFile(this MockSolution solution,
                                                MockSourceFile sourceFile)
        {
            if (null == sourceFile)
            {
                return(null);
            }

            //Load Project
            var project = solution.Projects.FirstOrDefault(p => p.ContainsFile(sourceFile));

            Assert.NotNull(project, "Could not find Project that contains [{0}]", sourceFile.FileName);

            //Remove File from Project
            project.MockSourceFiles =
                project.MockSourceFiles
                .Where(f => !f.FileName.Equals(sourceFile.FileName))
                .ToList();

            return(sourceFile);
        }
コード例 #8
0
        public override void MainSetup()
        {
            TestSpecificKernel = KernelFactory.BuildDefaultKernelForTests();

            EventProxy = TestSpecificKernel.Get <IVisualStudioEventProxy>()
                         //This is important, if the casting isn't done, then EventProxy isn't returned via IoC
                         as TestVisualStudioEventProxy;

            _MockFileWrapper = BuildMockFileReader();
            TestSpecificKernel.Rebind <IFileWrapper>().ToMethod(c => _MockFileWrapper);

            _MockMicrosoftBuildProjectLoader = BuildMockMicrosoftBuildProjectLoader();
            TestSpecificKernel.Rebind <IMicrosoftBuildProjectLoader>().ToMethod(c => _MockMicrosoftBuildProjectLoader);

            _MockCodeBehindFileHelper = BuildMockCodeBehindFileHelper();
            TestSpecificKernel.Rebind <ICodeBehindFileHelper>().ToMethod(c => _MockCodeBehindFileHelper);


            _MockSolution = new MockSolution();

            //Set solution context
            TestSpecificKernel.Get <ISolutionContext>().SolutionFileName =
                _MockSolution.FileName;
        }
コード例 #9
0
        public override void MainSetup()
        {
            TestSpecificKernel = KernelFactory.BuildDefaultKernelForTests();

            EventProxy = TestSpecificKernel.Get<IVisualStudioEventProxy>()
                //This is important, if the casting isn't done, then EventProxy isn't returned via IoC
                as TestVisualStudioEventProxy;

            _MockFileWrapper = BuildMockFileReader();
            TestSpecificKernel.Rebind<IFileWrapper>().ToMethod(c => _MockFileWrapper);

            _MockMicrosoftBuildProjectLoader = BuildMockMicrosoftBuildProjectLoader();
            TestSpecificKernel.Rebind<IMicrosoftBuildProjectLoader>().ToMethod(c => _MockMicrosoftBuildProjectLoader);

            _MockCodeBehindFileHelper = BuildMockCodeBehindFileHelper();
            TestSpecificKernel.Rebind<ICodeBehindFileHelper>().ToMethod(c => _MockCodeBehindFileHelper);

            _MockSolution = new MockSolution();

            //Set solution context
            TestSpecificKernel.Get<ISolutionContext>().SolutionFileName =
                _MockSolution.FileName;
        }
コード例 #10
0
        public static MockSolution InitializeWithEmptyProject(this MockSolution s)
        {
            s.Projects.Add(new MockProject());

            return(s);
        }
コード例 #11
0
 public static MockSourceFile RemoveFile(this MockSolution solution,
                                         Func <MockSolution, MockSourceFile> sourceFileFunc)
 {
     return(RemoveFile(solution, sourceFileFunc(solution)));
 }