O2 Script/Running Unit Tests
From
O2 has native support for Unit Tests
In these examples we will show how to load + execute a file containing unit tests and execute a dynamically created unit test file
Creating test environment
panel.Tag = null; ascx_Simple_Script_Editor script = null; if ((panel.Tag is ascx_Simple_Script_Editor).isFalse()) { panel.clear(); script = panel.add_Script(false); panel.Tag = script; var unitTests = script.insert_Right<ascx_XRules_UnitTests>(300); script.onCompilationOk += ()=>{ var location = script.csharpCompiler.assembly().Location; location.info(); unitTests.loadFile(location); }; } script = (ascx_Simple_Script_Editor)panel.Tag; //using O2.Core.XRules.Ascx //using O2.XRules.Database.O2Utils //O2Ref:O2_Core_XRules.dll
Example 1:loading and executing a file with unit tests
//create the Gui and set events panel.clear(); script = panel.add_Script(false); panel.Tag = script; var unitTests = script.insert_Right<ascx_XRules_UnitTests>(300); script.onCompilationOk += ()=>{ var location = script.csharpCompiler.assembly().Location; location.info(); unitTests.loadFile(location); }; //load data var sampleUnitTestCode = @"C:\O2\O2Scripts_Database\_Scripts\_UnderDev_and_PoCs\_Samples\SampleUnitTests.cs".fileContents(); sampleUnitTestCode += "//generateDebugSymbols".lineBefore(); script.set_Command(sampleUnitTestCode); //using O2.Core.XRules.Ascx //using O2.XRules.Database.O2Utils //O2Ref:O2_Core_XRules.dll
Example 2:creating dynamically a unit test file and executing it
//create the Gui and set events panel.clear(); script = panel.add_Script(false); panel.Tag = script; var unitTests = script.insert_Right<ascx_XRules_UnitTests>(300); script.onCompilationOk += ()=>{ var location = script.csharpCompiler.assembly().Location; location.info(); unitTests.loadFile(location); }; //dynamically create source source code var compilationUnit = new CompilationUnit(); compilationUnit.add_Using("NUnit.Framework"); var type = compilationUnit.add_Type_("UnitTestClass"); type.add_Attribute("TestFixture"); var method = type.add_Method("testMethodA").returnType("String"); method.add_Attribute("Test"); var body = method.add_Body(); body.add_Invocation("Assert","That", true,"value was true"); body.add_Return("All OK").body(); type.add_Method("testMethodB") .add_Attribute("Test") .add_Body() .add_Invocation("Assert","That", false,"this will fail"); var sourceCode = compilationUnit.csharpCode(); sourceCode += "//O2Ref:NUnit.Framework.dll".lineBefore() + "//generateDebugSymbols".lineBefore(); script.set_Command(sourceCode); return null; //using O2.Core.XRules.Ascx //using O2.XRules.Database.O2Utils //O2Ref:O2_Core_XRules.dll <source lang=csharp>
