public void SetupSourceFile()
        {
            dir = GitTests.RepoPath;
            GitReset();
            var fName = "ClassA.cs";

            sourceFile = PipelineComponentsFactory.GetSourceFileForFile(fName);
        }
        public void TestSetterInjection()
        {
            var source             = PipelineComponentsFactory.GetSourceFileForFile("WithSetter.cs");
            var sourceFileAnalyzer = new SourceFileAnalyzer(source);

            var blocks = sourceFileAnalyzer.GetCodeBlocks();

            Assert.IsTrue(blocks.Count == 1);
            Assert.IsTrue(blocks[0].IsMethod);
            Assert.IsTrue(blocks[0].methodName.Equals("testSetter.set"));
            Assert.IsTrue(blocks[0].Statements.Count == 3);
        }
        public void TestHooksRenderer_UNIT()
        {
            List <Hooks> hooksList = PipelineComponentsFactory.GenerateHookList(sourceFile);

            HooksRenderer hooksRenderer = new HooksRenderer();
            string        outText       = hooksRenderer.GetHookedCode(sourceFile, hooksList);

            Assert.IsTrue(outText.Contains("OnMethodEnter"));
            Assert.IsTrue(outText.Contains("LogLineRun"));
            Assert.IsTrue(outText.Contains("using CodeRecordHelpers;"));
            File.WriteAllText("/tmp/code.cs", outText);
        }
        public void TestCodeBlockToHooksGenerator_UNIT()
        {
            List <CodeBlock> blocks = PipelineComponentsFactory.GenerateTestCodeBlock(sourceFile);

            CodeblocksToHooksGenerator gen = new CodeblocksToHooksGenerator();

            var hooksList = gen.GenerateHooks(blocks);

            Assert.IsTrue(hooksList.Count > 0);
            Assert.IsTrue(hooksList[1].Pairs[1].Key == 0);
            Assert.IsTrue(hooksList[1].Pairs[0].Value.Contains("var mrid = CodeHooks.Instance().OnMethodEnter(@\"ClassA.cs\", \"MethodA_1\");\n\n"));
            Assert.IsTrue(hooksList[1].Pairs[1].Value.Contains("CodeHooks.Instance().LogLineRun(mrid, 19"));
        }