コード例 #1
0
        public void CallMethod_MissingMember()
        {
            string scriptFile = "C:\\test.py";

            string script = @"class Plugin:
    def __init__(self):
        pass

    def OnLoad(self):
        Logger.Info(""OnLoad"")";

            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.CallMethod("MissingMethod");

            scriptLoggerMock.Verify(l => l.Error("Missing member when trying to execute method '{0}'.", It.Is <object[]>(o => o.Contains("MissingMethod"))),
                                    Times.AtLeastOnce);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }