public void OnLoad() { string scriptFile = "C:\\test.py"; string script = @"class Plugin: def __init__(self): pass def OnLoad(self): Logger.Info(""OnLoad_Test"")"; fileSystemMock.Setup(fs => fs.File.Exists(scriptFile)) .Returns(true); fileSystemMock.Setup(fs => fs.File.ReadAllText(scriptFile)) .Returns(script); var engine = new ScriptEngine.PythonEngine( reportServerReaderMock.Object, reportServerWriterMock.Object, reportServerRepositoryMock.Object, fileSystemMock.Object, loggerMock, scriptLoggerMock.Object); engine.Load(scriptFile); scriptLoggerMock.Verify(l => l.Info("OnLoad_Test")); }
public void CallFunction_MissingMember() { string scriptFile = "C:\\test.py"; string script = @"class Plugin: def __init__(self): pass def MyFunction(self, a, b): return a * b"; fileSystemMock.Setup(fs => fs.File.Exists(scriptFile)) .Returns(true); fileSystemMock.Setup(fs => fs.File.ReadAllText(scriptFile)) .Returns(script); var engine = new ScriptEngine.PythonEngine( reportServerReaderMock.Object, reportServerWriterMock.Object, reportServerRepositoryMock.Object, fileSystemMock.Object, loggerMock, scriptLoggerMock.Object); engine.Load(scriptFile); engine.CallFunction("MissingMethod"); scriptLoggerMock.Verify(l => l.Error("Missing member when trying to execute method '{0}'.", It.Is <object[]>(o => o.Contains("MissingMethod"))), Times.AtLeastOnce); }
public void CallFunction( [Random(1, 100, 5)] int a, [Random(1, 100, 5)] int b) { string scriptFile = "C:\\test.py"; string script = @"class Plugin: def __init__(self): pass def MyFunction(self, a, b): return a * b"; fileSystemMock.Setup(fs => fs.File.Exists(scriptFile)) .Returns(true); fileSystemMock.Setup(fs => fs.File.ReadAllText(scriptFile)) .Returns(script); var engine = new ScriptEngine.PythonEngine( reportServerReaderMock.Object, reportServerWriterMock.Object, reportServerRepositoryMock.Object, fileSystemMock.Object, loggerMock, scriptLoggerMock.Object); int expected = a * b; engine.Load(scriptFile); int actual = engine.CallFunction("MyFunction", a, b); Assert.AreEqual(expected, actual); }
public void CallMethod() { string scriptFile = "C:\\test.py"; string script = @"class Plugin: def __init__(self): pass def TestMethod(self, variable): Logger.Info(variable)"; fileSystemMock.Setup(fs => fs.File.Exists(scriptFile)) .Returns(true); fileSystemMock.Setup(fs => fs.File.ReadAllText(scriptFile)) .Returns(script); var engine = new ScriptEngine.PythonEngine( reportServerReaderMock.Object, reportServerWriterMock.Object, reportServerRepositoryMock.Object, fileSystemMock.Object, loggerMock, scriptLoggerMock.Object); string expected = "Test Value"; engine.Load(scriptFile); engine.CallMethod("TestMethod", expected); scriptLoggerMock.Verify(l => l.Info(expected)); }
public void GetGlobalVariable( [Random(1, 100, 5)] int a) { string scriptFile = "C:\\test.py"; string script = @"class Plugin: def __init__(self): pass def MyMethod(self, a): global GlobalVariable GlobalVariable = a * 10"; fileSystemMock.Setup(fs => fs.File.Exists(scriptFile)) .Returns(true); fileSystemMock.Setup(fs => fs.File.ReadAllText(scriptFile)) .Returns(script); var engine = new ScriptEngine.PythonEngine( reportServerReaderMock.Object, reportServerWriterMock.Object, reportServerRepositoryMock.Object, fileSystemMock.Object, loggerMock, scriptLoggerMock.Object); int expected = a * 10; engine.Load(scriptFile); engine.CallMethod("MyMethod", a); int actual = engine.GetGlobalVariable("GlobalVariable"); Assert.AreEqual(expected, actual); }
public void OnLoad_SyntaxError() { string scriptFile = "C:\\test.py"; string script = @"class Plugin ERROR def __init__(self): pass def OnLoad(self): Logger.Info(""OnLoad_Test"")"; fileSystemMock.Setup(fs => fs.File.Exists(scriptFile)) .Returns(true); fileSystemMock.Setup(fs => fs.File.ReadAllText(scriptFile)) .Returns(script); fileSystemMock.Setup(fs => fs.Path.GetFileName(scriptFile)) .Returns("test.py"); var engine = new ScriptEngine.PythonEngine( reportServerReaderMock.Object, reportServerWriterMock.Object, reportServerRepositoryMock.Object, fileSystemMock.Object, loggerMock, scriptLoggerMock.Object); Exception ex = Assert.Throws <Exception>( delegate { engine.Load(scriptFile); }); StringAssert.Contains(@"Syntax error in ""test.py"":", ex.Message); }