public void Calling_Function_Without_Parameters_And_With_A_String_ReturnValue_Works()
        {
            FirstDummyStaticExtension extension = new FirstDummyStaticExtension();
            string expectedResult = extension.SecondMethod();

            IStaticExtensionFunctionData functionDeclaration = _LibraryPluginManager.GetStaticFunctionDataBySignature("First", "SecondMethod", new Type[] { });

            object result = _LibraryPluginManager.CallStaticFunctionWithPrimitiveReturn(functionDeclaration, new object[] {});

            Assert.AreEqual(expectedResult, result);
        }
        public void Calling_Overloaded_Function_With_DateTime_Parameter_Works()
        {
            List <IValue> parameters = new List <IValue>()
            {
                new TypedValue(TypeHelper.GetSyneryType(typeof(DateTime)), new DateTime(1987, 12, 15, 22, 30, 0)),
            };

            FirstDummyStaticExtension extension = new FirstDummyStaticExtension();
            string expectedResult = extension.OverloadedMethod((DateTime)parameters[0].Value);

            IStaticExtensionFunctionData functionDeclaration = _LibraryPluginManager.GetStaticFunctionDataBySignature("First", "OverloadedMethod", parameters.Select(p => p.Type.UnterlyingDotNetType).ToArray());

            object result = _LibraryPluginManager.CallStaticFunctionWithPrimitiveReturn(functionDeclaration, parameters.Select(p => p.Value).ToArray());

            Assert.AreEqual(expectedResult, result);
        }
        public void Calling_Function_With_One_Parameter_And_With_A_String_ReturnValue_Works()
        {
            List <IValue> parameters = new List <IValue>()
            {
                new TypedValue(TypeHelper.GetSyneryType(typeof(string)), "This is a test."),
            };

            FirstDummyStaticExtension extension = new FirstDummyStaticExtension();
            string expectedResult = extension.ThirdMethod((string)parameters[0].Value);

            IStaticExtensionFunctionData functionDeclaration = _LibraryPluginManager.GetStaticFunctionDataBySignature("First", "ThirdMethod", parameters.Select(p => p.Type.UnterlyingDotNetType).ToArray());

            object result = _LibraryPluginManager.CallStaticFunctionWithPrimitiveReturn(functionDeclaration, parameters.Select(p => p.Value).ToArray());

            Assert.AreEqual(expectedResult, result);
        }