SEARCH
TOOLBOX
LANGUAGES
modified on 19 June 2010 at 01:28 ••• 1,672 views

O2 Script/Running Unit Tests

From

Jump to: navigation, search

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>
MediaWiki Appliance - Powered by TurnKey Linux