public void MethodWithWarpedParametersButVoidResult()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(ServiceWithMethodsUsingWarpedParameters));
            Method       foo   = clazz.FindMethodByName("FooNoResult");

            Assert.AreEqual(typeof(void), foo.ResultType);
        }
        public void MethodIdempotency()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(IdempotencyTestService));

            Assert.IsFalse(clazz.GetMethodByName("NonIdempotentMethod").Idempotent);
            Assert.IsTrue(clazz.GetMethodByName("IdempotentMethod").Idempotent);
        }
        public void CustomNameViaAttribute()
        {
            ServiceClass clazz  = JsonRpcServices.GetClassFromType(typeof(TestService));
            Method       method = clazz.FindMethodByName("Foo");

            Assert.AreEqual("Foo", method.Name);
            Assert.AreEqual("Foo", method.InternalName);
        }
        public void Invocation()
        {
            ServiceClass clazz   = JsonRpcServices.GetClassFromType(typeof(TestService));
            TestService  service = new TestService();
            object       result  = clazz.GetMethodByName("Sum").Invoke(service, null, new object[] { 2, 3 });

            Assert.AreEqual(5, result);
        }
        public void AttributeFromMethod()
        {
            ServiceClass clazz  = JsonRpcServices.GetClassFromType(typeof(TestService));
            Method       method = clazz.FindMethodByName("Baz");

            Assert.AreEqual("Baz", method.Name);
            Assert.AreEqual("Bar", method.InternalName);
        }
        public void FindFirstCustomAttribute()
        {
            ArrayList   expectedValues = new ArrayList(new int[] { 12, 34, 56 });
            Method      method         = JsonRpcServices.GetClassFromType(typeof(TestService)).GetMethodByName("Foo");
            MyAttribute attribute      = (MyAttribute)method.FindFirstCustomAttribute(typeof(MyAttribute));

            expectedValues.Remove(attribute.TestValue);
            Assert.AreEqual(2, expectedValues.Count);
        }
        public void ResultTypeIsMethodReturnType()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(TestService));

            Assert.AreEqual(typeof(void), clazz.GetMethodByName("Foo").ResultType);
            Assert.AreEqual(typeof(void), clazz.GetMethodByName("Baz").ResultType);
            Assert.AreEqual(typeof(int), clazz.GetMethodByName("Sum").ResultType);
            Assert.AreEqual(typeof(string), clazz.GetMethodByName("Format").ResultType);
        }
        public void AffliatedWithService()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(TestService));

            foreach (Method method in clazz.GetMethods())
            {
                Assert.AreSame(clazz, method.ServiceClass);
            }
        }
        public void MethodDescriptions()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(TestService));

            Assert.AreEqual(0, clazz.GetMethodByName("Foo").Description.Length);
            Assert.AreEqual(0, clazz.GetMethodByName("Baz").Description.Length);
            Assert.AreEqual(0, clazz.GetMethodByName("Sum").Description.Length);
            Assert.AreEqual("Formats a string.", clazz.GetMethodByName("Format").Description);
        }
Пример #10
0
        public virtual ServiceClass GetClass()
        {
            if (_class == null)
            {
                _class = JsonRpcServices.GetClassFromType(GetType());
            }

            return(_class);
        }
        public void MethodLookupIsCaseFree()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(TestService));
            Method       foo   = clazz.FindMethodByName("Foo");

            Assert.AreEqual("Foo", foo.Name);
            Assert.AreSame(foo, clazz.FindMethodByName("foo"));
            Assert.AreSame(foo, clazz.FindMethodByName("FOO"));
            Assert.AreSame(foo, clazz.FindMethodByName("Foo"));
        }
        public void CustomAttributes()
        {
            ArrayList expectedValues = new ArrayList(new int[] { 12, 34, 56 });

            MyAttribute[] attributes = (MyAttribute[])JsonRpcServices.GetClassFromType(typeof(TestService)).GetMethodByName("Foo").GetCustomAttributes(typeof(MyAttribute));
            Assert.AreEqual(3, attributes.Length);
            foreach (MyAttribute attribute in attributes)
            {
                expectedValues.Remove(attribute.TestValue);
            }
            Assert.AreEqual(0, expectedValues.Count);
        }
        public void Parameters()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(TestService));

            Parameter[] parameters = clazz.GetMethodByName("Sum").GetParameters();
            Assert.AreEqual(2, parameters.Length);

            Parameter parameter;

            parameter = parameters[0];
            Assert.AreEqual("a", parameter.Name);
            Assert.AreEqual(typeof(int), parameter.ParameterType);
            Assert.AreEqual(0, parameter.Position);

            parameter = parameters[1];
            Assert.AreEqual("b", parameters[1].Name);
            Assert.AreEqual(typeof(int), parameter.ParameterType);
            Assert.AreEqual(1, parameter.Position);
        }
        public void MethodWithWarpedParametersAndResult()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(ServiceWithMethodsUsingWarpedParameters));
            Method       foo   = clazz.FindMethodByName("Foo");

            Assert.AreEqual(typeof(DateTime), foo.ResultType);

            Parameter[] parameters = foo.GetParameters();
            Assert.AreEqual(2, parameters.Length);

            Parameter parameter;

            parameter = parameters[0];
            Assert.AreEqual("stringArg", parameter.Name);
            Assert.AreEqual(0, parameter.Position);
            Assert.AreEqual(typeof(string), parameter.ParameterType);

            parameter = parameters[1];
            Assert.AreEqual("intArg", parameter.Name);
            Assert.AreEqual(1, parameter.Position);
            Assert.AreEqual(typeof(int), parameter.ParameterType);
        }
        public void ParamArray()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(TestService));

            Assert.IsFalse(clazz.GetMethodByName("Foo").HasParamArray);
            Assert.IsFalse(clazz.GetMethodByName("Baz").HasParamArray);

            Method method;

            Parameter[] parameters;

            method     = clazz.GetMethodByName("Sum");
            parameters = method.GetParameters();
            Assert.IsFalse(method.HasParamArray);
            Assert.IsFalse(parameters[0].IsParamArray);
            Assert.IsFalse(parameters[1].IsParamArray);

            method     = clazz.GetMethodByName("Format");
            parameters = method.GetParameters();
            Assert.IsTrue(method.HasParamArray);
            Assert.IsFalse(parameters[0].IsParamArray);
            Assert.IsTrue(parameters[1].IsParamArray);
        }
Пример #16
0
 public ServiceClass GetClass()
 {
     return(JsonRpcServices.GetClassFromType(GetType()));
 }
 public void ServiceDescription()
 {
     Assert.AreEqual("A test service.", JsonRpcServices.GetClassFromType(typeof(TestService)).Description);
 }
        public void DefaultNameIsMethodName()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(TestService));

            Assert.AreEqual("Foo", clazz.FindMethodByName("Foo").Name);
        }
 public void NullService()
 {
     JsonRpcServices.GetClassFromType(null);
 }
        public void CustomServiceName()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(TestService));

            Assert.AreEqual("MyService", clazz.Name);
        }
        public void TaggedMethodsExported()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(TestService));

            Assert.AreEqual(4, clazz.GetMethods().Length);
        }
        public void UntaggedMethodsNotExported()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(EmptyService));

            Assert.AreEqual(0, clazz.GetMethods().Length);
        }
        public void ServiceNameIsTypeName()
        {
            ServiceClass clazz = JsonRpcServices.GetClassFromType(typeof(EmptyService));

            Assert.AreEqual("EmptyService", clazz.Name);
        }
        public void CustomAttributesAreCopied()
        {
            Method method = JsonRpcServices.GetClassFromType(typeof(TestService)).GetMethodByName("Foo");

            Assert.AreNotSame(method.GetCustomAttributes()[0], method.GetCustomAttributes()[0]);
        }
        public void FindFirstCustomAttributeYieldsCopy()
        {
            Method method = JsonRpcServices.GetClassFromType(typeof(TestService)).GetMethodByName("Foo");

            Assert.AreNotSame(method.FindFirstCustomAttribute(typeof(MyAttribute)), method.FindFirstCustomAttribute(typeof(MyAttribute)));
        }