public void Undo() { Context.InitWithDefault(); var asm = Context.Current.Document; // Create one body -> State 1 var body1 = TestGeomGenerator.CreateBox().Body; asm.AddChild(body1); Context.Current.UndoHandler.Commit(); var state1 = Serializer.Serialize(asm, new SerializationContext()); // Run Script -> State 2 var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename("CreateBoxBody.csx")); Assert.IsNotNull(script); Assert.IsTrue(script.Run()); Assert.IsTrue(Context.Current.UndoHandler.CanUndo); Assert.IsFalse(Context.Current.UndoHandler.CanRedo); // Undo -> State 1 Context.Current.UndoHandler.DoUndo(1); Assert.IsTrue(Context.Current.UndoHandler.CanUndo); Assert.IsTrue(Context.Current.UndoHandler.CanRedo); var state1a = Serializer.Serialize(asm, new SerializationContext()); // LastNameSuffix has changed, this is intended. Decrement it to match again in serialization string. state1a = state1a.Replace("LastNameSuffices:{\"Box\":2}", "LastNameSuffices:{\"Box\":1}"); Assert.AreEqual(state1, state1a); }
public void PreProcessorComments() { var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename("PreProcessorComments.csx")); Assert.IsNotNull(script); Assert.IsTrue(script.Run()); }
public void GacReference() { var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename("GacReference.csx")); Assert.IsNotNull(script); Assert.IsTrue(script.Run()); }
public void ScriptCacheHit() { var script1 = ScriptInstance.LoadScriptFromFile(GetScriptFilename("HelloWorld.csx")); var script2 = ScriptInstance.LoadScriptFromFile(GetScriptFilename("HelloWorld.csx")); Assert.IsNotNull(script1); Assert.IsNotNull(script2); Assert.AreSame(script1, script2); // Cache hit }
public void CompilerWarning() { var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename("CompilerWarning.csx")); Assert.IsNotNull(script); Assert.That(Context.Current.MessageHandler.MessageItems.Any(m => m.Severity == MessageSeverity.Warning && m.Explanation.Any(s => s.Contains("Warning CS0162")))); }
public void CompilerError() { var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename("CompilerError.csx")); Assert.IsNull(script); Assert.That(Context.Current.MessageHandler.MessageItems.Any(m => m.Severity == MessageSeverity.Error && m.Explanation != null && m.Explanation.Any(s => s.Contains("Error CS0117")))); }
public void DocExamplesCompilation() { var path = Path.Combine(TestData.TestDataDirectory, @"..\..\Source\Macad.UserGuide\Scripting\Samples"); foreach (var file in Directory.EnumerateFiles(path, "*.csx")) { Console.WriteLine(Path.GetFileName(file)); var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename(file), InteractiveScriptContext.Default, true); Assert.IsNotNull(script); } }
public void RunScript() { var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename("HelloWorld.csx")); Assert.IsNotNull(script); using (var output = new ConsoleOutput()) { Assert.IsTrue(script.Run()); Assert.AreEqual("Hello World", output.GetOutput()); } }
public void ImportSecondFile() { var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename("ImportSecondFile.csx")); Assert.IsNotNull(script); using (var output = new ConsoleOutput()) { Assert.IsTrue(script.Run()); Assert.AreEqual("Hello World to the other file", output.GetOutput()); } Assert.IsNull(ScriptInstance.Current); }
public void ScriptCacheMiss() { var filename = GetScriptFilename("_temp_ScriptCacheMiss.csx"); File.Copy(GetScriptFilename("HelloWorld.csx"), filename); var script1 = ScriptInstance.LoadScriptFromFile(filename); File.AppendAllText(filename, "// AppendedText"); var script2 = ScriptInstance.LoadScriptFromFile(filename); File.Delete(filename); Assert.IsNotNull(script1); Assert.IsNotNull(script2); Assert.AreNotSame(script1, script2); // Cache miss }
public void ScriptCacheMultifileMiss() { var basefilename = GetScriptFilename("ImportSecondTempFile.csx"); var tempfilename = GetScriptFilename("_temp_ScriptCacheMiss.csx"); File.Copy(GetScriptFilename("SecondFile.csx"), tempfilename); var script1 = ScriptInstance.LoadScriptFromFile(basefilename); File.AppendAllText(tempfilename, "// AppendedText"); var script2 = ScriptInstance.LoadScriptFromFile(basefilename); File.Delete(tempfilename); Assert.IsNotNull(script1); Assert.IsNotNull(script2); Assert.AreNotSame(script1, script2); // Cache miss }
public void VersionDefines() { ScriptCompiler.OverrideVersion(2.1f); using (var output = new ConsoleOutput()) { var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename("VersionDefines.csx"), true); Assert.IsNotNull(script); Assert.IsTrue(script.Run()); Assert.AreEqual("-Version >= 2.0-", output.GetOutput()); } ScriptCompiler.OverrideVersion(2.1f); using (var output = new ConsoleOutput()) { var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename("VersionDefines.csx"), true); Assert.IsNotNull(script); Assert.IsTrue(script.Run()); Assert.AreEqual("-Version >= 2.0-", output.GetOutput()); } ScriptCompiler.OverrideVersion(1.0f); using (var output = new ConsoleOutput()) { var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename("VersionDefines.csx"), true); Assert.IsNotNull(script); Assert.IsTrue(script.Run()); Assert.AreEqual("-Version < 1.1-", output.GetOutput()); } ScriptCompiler.OverrideVersion(1.1f); using (var output = new ConsoleOutput()) { var script = ScriptInstance.LoadScriptFromFile(GetScriptFilename("VersionDefines.csx"), true); Assert.IsNotNull(script); Assert.IsTrue(script.Run()); Assert.AreEqual("-Version Else-", output.GetOutput()); } }
public void DocScriptExamples(string file) { var script = ScriptInstance.LoadScriptFromFile(Path.Combine(TestData.TestDataDirectory, @"..\..\Source\Macad.UserGuide\Scripting\Samples", file), InteractiveScriptContext.Default, true); }