Beispiel #1
0
        public void ConstructionParamsTest()
        {
            var searchPaths = new List <string> {
                CsTestHelpers.ProjectFilePath, CsTestHelpers.GetTestFileSubFolder()
            };
            var basePath = AppContext.BaseDirectory;

            var idr = new InterceptDirectiveResolver(searchPaths.ToImmutableArray(), basePath);

            Assert.IsNotNull(idr);
        }
Beispiel #2
0
        public void Setup()
        {
            _scriptWithoutAsmOrScriptOrClassRef      = CsxTestHelpers.GetTestFilePath("WithoutAsmOrScriptOrClassRef.csx");
            _scriptWithAsm_ButNoScriptOrClassRef     = CsxTestHelpers.GetTestFilePath("WithAsm_ButNoScriptOrClassRef.csx");
            _scriptWithAsmAndScriptRef_ButNoClassRef = CsxTestHelpers.GetTestFilePath("WithAsmAndScriptRef_ButNoClassRef.csx");
            _scriptWithScriptAndClassRef_ButNoAsmRef = CsxTestHelpers.GetTestFilePath("WithScriptAndClassRef_ButNoAsmRef.csx");
            _scriptWithScriptRef_ButNoAsmOrClassRef  = CsxTestHelpers.GetTestFilePath("WithScriptRef_ButNoAsmOrClassRef.csx");
            _scriptWithClassRef_ButNoAsmmOrScriptRef = CsxTestHelpers.GetTestFilePath("WithClassRef_ButNoAsmOrScriptRef.csx");
            _scriptWithAsmAndClassAndScriptRef       = CsxTestHelpers.GetTestFilePath("WithAsmAndClassAndScriptRef.csx");
            _referencedClassFilePath = CsTestHelpers.GetTestFilePath("ReferencedClass.csx");

            CsTestHelpers.RemoveFiles($"*.{CsRewriter.DEFAULT_REWRITE_TEMP_EXTENSION}");
            CsTestHelpers.RemoveFiles($"*.{CsRewriter.DEFAULT_REWRITE_EXTENSION}");
        }
Beispiel #3
0
        //[Test]
        public void RewriteReferencedClassFileAsAssembly()
        {
            var result = CsRewriter.CreateRewriteFileAsAssembly(_referencedClassFilePath);

            Assert.IsTrue(result.IsCompiled, "assembly was not compiled");

            Assert.IsTrue(FileUtilities.WriteAssembly(result.AssemblyFilePath, result.AssemblyBytes),
                          "Failed to write assembly to disk");

            Assert.IsTrue(FileUtilities.WriteAssembly(result.PdbFilePath, result.PdbBytes),
                          "Failed to write assembly pdb to disk");

            var asm     = Assembly.LoadFile(result.AssemblyFilePath);
            var asmList = new List <Assembly>(result.FoundAssemblies)
            {
                asm
            };

            //dirty rewrite. Would be nice if had result.OriginalDirectivePath
            var callingScript          = CsxTestHelpers.GetFileContent(_scriptFileToExecute);
            var rewrittenCallingScript = callingScript.Replace("#load \"..\\TestCs\\ReferencedClass.cs\"",
                                                               $"#r \"{result.AssemblyFilePath}\"");
            var rewrittenScriptFileName = $"{_scriptFileToExecute}.rewrite.csx";

            CsxTestHelpers.WriteFileContent(rewrittenScriptFileName, rewrittenCallingScript);


            var runResult = CsTestHelpers.EvaluateScript(rewrittenScriptFileName, asmList, result.FoundNamespaces);

            Assert.IsNotNull(runResult);
            var expectedResult = new List <string>
            {
                "namespace TestNamespace{class TestClass{public void TestMethod(){}}}",
                "// Emitting prop with backing field 69",
                "// using the referenced class to output - Value_"
            };
            var actualResult = CsxTestHelpers.GetFileLines(runResult.OutputFiles.Single().FilePath);

            StringAssert.AreEqualIgnoringCase(expectedResult[0], actualResult[0]);
            StringAssert.AreEqualIgnoringCase(expectedResult[1], actualResult[1]);
            StringAssert.StartsWith(expectedResult[2], actualResult[2]);
            StringAssert.AreNotEqualIgnoringCase(expectedResult[2], actualResult[2]);
        }
Beispiel #4
0
 public void TearDown()
 {
     CsTestHelpers.RemoveFiles("*.rewrite.*");
 }
Beispiel #5
0
 public void Setup()
 {
     _scriptFileToExecute     = CsxTestHelpers.GetTestFilePath("ScriptToExecute.csx");
     _referencedClassFilePath = CsTestHelpers.GetTestFilePath("ReferencedClass.cs");
     CsTestHelpers.RemoveFiles("*.rewrite.*");
 }