public void ReturnTupleTest() { var callsCount = 0; var serviceInstance = new TestService(() => callsCount++); var serializerFactory = new MessagePackSerializerFactory(); var serviceDispatcher = new ServiceDispatcher <ITestService>(serializerFactory, new LoggerStub()); var argumentsData = new byte[2][]; argumentsData[0] = serializerFactory.CreateSerializer <int>().Serialize(0); argumentsData[1] = serializerFactory.CreateSerializer <int>().Serialize(2); var result = serviceDispatcher.Dispatch(serviceInstance, new RpcMessage() { ServiceCode = typeof(ITestService).FullName.GetHashCode(), OperationCode = 3, ArgumentsData = argumentsData }); Assert.NotNull(result); Assert.True(result.HasReturnValue); var resultTuple = serializerFactory.CreateSerializer <(int count, SerializableObject[] objects)>() .Deserialize(result.ReturnValue); Assert.Equal(2, resultTuple.count); Assert.Equal(SerializableObject.TestInt, resultTuple.objects[0].IntProperty); Assert.Equal(SerializableObject.TestString, resultTuple.objects[0].StringProperty); Assert.Equal( SerializableObject.TestDouble, resultTuple.objects[0].NestedObject.DoubleProperty); }
public void Test() { ServiceRegistry.Register <CalculteService>(); int expected = 5; int actual = ServiceDispatcher.Dispatch <int>("Calculte", "Add", new { a = 2, b = 3 }); Assert.AreEqual(expected, actual); }
public void Test() { ServiceRegistry.Register <DemoService>(); string expected = "hello abc"; string actual = ServiceDispatcher.Dispatch <string>("Demo", "hello", new { name = expected }); Assert.AreEqual(expected, actual); }
public void Dispatch_ServiceShouldReturnValue() { ServiceDispatcher serviceDispatcher = new ServiceDispatcher(new TestPlatformProvider()); serviceDispatcher.Initialize(); Service1 service1 = new Service1(); serviceDispatcher.Subscribe <IService1>(service1); Assert.Equal(3, serviceDispatcher.Dispatch <IService1, int>(s => s.ServiceMethod3(1, 2)).Single()); }
public void DispatchReflection_ServiceShouldReturnValue() { ServiceDispatcher serviceDispatcher = new ServiceDispatcher(new TestPlatformProvider()); serviceDispatcher.Initialize(); Service1 service1 = new Service1(); serviceDispatcher.Subscribe <IService1>(service1); Assert.Equal(3, serviceDispatcher.Dispatch("service1", "serviceMethod3", new object[] { 1, 2 }).Cast <int>().Single()); }
public void DispatchReflection_ServiceShouldHaveBeenCalledWithDifferentParameterType() { ServiceDispatcher serviceDispatcher = new ServiceDispatcher(new TestPlatformProvider()); serviceDispatcher.Initialize(); Service1 service1 = new Service1(); serviceDispatcher.Subscribe <IService1>(service1); serviceDispatcher.Dispatch("service1", "serviceMethod2", new object[] { 42L }); Assert.Equal(42, service1.ServiceMethod2Result); }
public void Dispatch_NamedService_ServiceShouldReturnValue() { ServiceDispatcher serviceDispatcher = new ServiceDispatcher(new TestPlatformProvider()); serviceDispatcher.Initialize(); Service1 instance1 = new Service1("Instance1"); Service1 instance2 = new Service1("Instance2"); serviceDispatcher.Subscribe <IService1>(instance1); serviceDispatcher.Subscribe <IService1>(instance2); Assert.Equal(3, serviceDispatcher.Dispatch <IService1, int>("Instance1", s => s.ServiceMethod3(1, 2))); }
public void DispatchReflection_NamedService_ServiceShouldReturnValue() { ServiceDispatcher serviceDispatcher = new ServiceDispatcher(new TestPlatformProvider()); serviceDispatcher.Initialize(); Service1 instance1 = new Service1("Instance1"); Service1 instance2 = new Service1("Instance2"); serviceDispatcher.Subscribe <IService1>(instance1); serviceDispatcher.Subscribe <IService1>(instance2); Assert.Equal(3, Convert.ToInt32(serviceDispatcher.Dispatch("service1", "Instance1", "serviceMethod3", new object[] { 1, 2 }))); }
public void Dispatch_ServiceShouldHaveBeenCalledWithParameter() { ServiceDispatcher serviceDispatcher = new ServiceDispatcher(new TestPlatformProvider()); serviceDispatcher.Initialize(); Service1 service1 = new Service1(); serviceDispatcher.Subscribe <IService1>(service1); serviceDispatcher.Dispatch <IService1>(s => s.ServiceMethod2(42)); Assert.Equal(42, service1.ServiceMethod2Result); }
public void DispatchReflection_ServiceShouldHaveBeenCalled() { ServiceDispatcher serviceDispatcher = new ServiceDispatcher(new TestPlatformProvider()); serviceDispatcher.Initialize(); Service1 service1 = new Service1(); serviceDispatcher.Subscribe <IService1>(service1); serviceDispatcher.Dispatch("service1", "serviceMethod1", null); Assert.True(service1.ServiceMethod1Called); }
public void Dispatch_NoSubscribedService_ServiceShouldNotHaveBeenCalled() { ServiceDispatcher serviceDispatcher = new ServiceDispatcher(new TestPlatformProvider()); serviceDispatcher.Initialize(); Service1 service1 = new Service1(); serviceDispatcher.Subscribe <IService1>(service1); serviceDispatcher.Unsubscribe <IService1>(service1); serviceDispatcher.Dispatch <IService1>(s => s.ServiceMethod1()); Assert.False(service1.ServiceMethod1Called); }
public void DispatchReflection_NamedService_ServiceShouldHaveBeenCalled() { ServiceDispatcher serviceDispatcher = new ServiceDispatcher(new TestPlatformProvider()); serviceDispatcher.Initialize(); Service1 instance1 = new Service1("Instance1"); Service1 instance2 = new Service1("Instance2"); serviceDispatcher.Subscribe <IService1>(instance1); serviceDispatcher.Subscribe <IService1>(instance2); serviceDispatcher.Dispatch("service1", "Instance1", "serviceMethod1", null); Assert.True(instance1.ServiceMethod1Called); Assert.False(instance2.ServiceMethod1Called); }
public void Test() { var dict = new Dictionary <string, object>(); dict["books[0].key"] = "key0"; dict["books[1].key"] = "key1"; dict["books[0].value.BookId"] = "0"; dict["books[1].value.BookId"] = "1"; dict["books[0].value.BookName"] = "BookName_00"; dict["books[1].value.BookName"] = "BookName_11"; dict["books[0].value.Author.AuthorId"] = "0"; dict["books[1].value.Author.AuthorId"] = "1"; dict["books[0].value.Author.AuthorName"] = "AuthorName0"; dict["books[1].value.Author.AuthorName"] = "AuthorName1"; dict["books[0].value.Author.Nation"] = "Nation0"; dict["books[1].value.Author.Nation"] = "Nation1"; ServiceRegistry.Register <BookService>(); var result = ServiceDispatcher .Dispatch <IDictionary <string, Book> >("book", "save", dict); Assert.AreEqual(2, result.Count); Assert.IsTrue(result.ContainsKey("key0")); Assert.IsTrue(result.ContainsKey("key1")); Assert.AreEqual(0, result["key0"].BookId); Assert.AreEqual(1, result["key1"].BookId); Assert.AreEqual("BookName_00", result["key0"].BookName); Assert.AreEqual("BookName_11", result["key1"].BookName); Assert.AreEqual(0, result["key0"].Author.AuthorId); Assert.AreEqual(1, result["key1"].Author.AuthorId); Assert.AreEqual("AuthorName0", result["key0"].Author.AuthorName); Assert.AreEqual("AuthorName1", result["key1"].Author.AuthorName); Assert.AreEqual("Nation0", result["key0"].Author.Nation); Assert.AreEqual("Nation1", result["key1"].Author.Nation); }
public void DispatchReflection_ServiceShouldBeCalledWithVariousDataTypes() { DataTypeTest dataTypeTest = new DataTypeTest("StringValue", 1L, 2.2f, 3.3d, new string[] { "1", "2", "3" }, new long[] { 1, 2, 3 }, new List <string>() { "1", "2", "3" }, new List <long>() { 1, 2, 3 }, new Dictionary <string, string>() { { "Key1", "Value1" }, { "Key2", "Value2" } }); ServiceDispatcher serviceDispatcher = new ServiceDispatcher(new TestPlatformProvider()); serviceDispatcher.Initialize(); Service1 service1 = new Service1(); serviceDispatcher.Subscribe <IService1>(service1); serviceDispatcher.Dispatch("service1", "serviceMethod4", new object[] { dataTypeTest.StringValue, dataTypeTest.LongValue, dataTypeTest.FloatValue, dataTypeTest.DoubleValue, dataTypeTest.StringArray, dataTypeTest.LongArray, dataTypeTest.StringEnumerable, dataTypeTest.LongEnumerable, dataTypeTest.StringDictionary }); Assert.Equal(dataTypeTest, service1.ServiceMethod4Result); }
public void Test() { var dict = new Dictionary <string, object>(); dict["books[0].BookId"] = "0"; dict["books[1].BookId"] = "1"; dict["books[0].BookName"] = "BookName_00"; dict["books[1].BookName"] = "BookName_11"; dict["books[0].Author.AuthorId"] = "0"; dict["books[1].Author.AuthorId"] = "1"; dict["books[0].Author.AuthorName"] = "AuthorName0"; dict["books[1].Author.AuthorName"] = "AuthorName1"; dict["books[0].Author.Nation"] = "Nation0"; dict["books[1].Author.Nation"] = "Nation1"; ServiceRegistry.Register <BookService>(); var result = ServiceDispatcher .Dispatch <IEnumerable <Book> >("book", "save", dict) .ToArray(); Assert.AreEqual(2, result.Length); Assert.AreEqual(0, result[0].BookId); Assert.AreEqual(1, result[1].BookId); Assert.AreEqual("BookName_00", result[0].BookName); Assert.AreEqual("BookName_11", result[1].BookName); Assert.AreEqual(0, result[0].Author.AuthorId); Assert.AreEqual(1, result[1].Author.AuthorId); Assert.AreEqual("AuthorName0", result[0].Author.AuthorName); Assert.AreEqual("AuthorName1", result[1].Author.AuthorName); Assert.AreEqual("Nation0", result[0].Author.Nation); Assert.AreEqual("Nation1", result[1].Author.Nation); }
protected override void Run() { Resp = ServiceDispatcher.Dispatch(Req); this.CaughtException = Resp.Exception; }
public void Should_be_not_match_b2_With_Action2() { ServiceDispatcher.Dispatch(ServiceRequest.Create("demo", "action", new { b2 = 0 })); }
//[ExpectedException(typeof(AmbiguousMatchException))] public void Should_be_not_match_b2_With_Action2() { var resp = ServiceDispatcher.Dispatch(ServiceRequest.Create("demo", "action1", new { b2 = 0 })); //if (resp.Exception != null) // throw resp.Exception; }
public void Should_be__match_b1_With_Action1() { ServiceDispatcher.Dispatch(ServiceRequest.Create("demo", "action1", new { b1 = 0 })); }
public void ServiceTest() { var callsCount = 0; var serviceInstance = new TestService(() => callsCount++); var serializerFactory = new MessagePackSerializerFactory(); var testObject = SerializableObject.GetTestInstance(); var argumentsData = new byte[1][]; argumentsData[0] = serializerFactory.CreateSerializer <SerializableObject>().Serialize(testObject); var serviceDispatcher = new ServiceDispatcher <ITestService>(serializerFactory, new LoggerStub()); Assert.Equal(serviceDispatcher.ServicePort, TestService.ServicePort); var result = serviceDispatcher.Dispatch(serviceInstance, new RpcMessage { ServiceCode = typeof(ITestService).FullName.GetHashCode(), OperationCode = 0, ArgumentsData = argumentsData }); Assert.NotNull(result); Assert.True(result.HasReturnValue); Assert.Equal( testObject.IntProperty, serializerFactory.CreateSerializer <int>().Deserialize(result.ReturnValue)); argumentsData = new byte[3][]; argumentsData[0] = serializerFactory.CreateSerializer <int>() .Serialize(SerializableObject.TestInt); argumentsData[1] = serializerFactory.CreateSerializer <string>() .Serialize(SerializableObject.TestString); argumentsData[2] = serializerFactory.CreateSerializer <double>() .Serialize(SerializableObject.TestDouble); result = serviceDispatcher.Dispatch(serviceInstance, new RpcMessage { ServiceCode = typeof(ITestService).FullName.GetHashCode(), OperationCode = 1, ArgumentsData = argumentsData }); Assert.NotNull(result); Assert.True(result.HasReturnValue); var resultObject = serializerFactory.CreateSerializer <SerializableObject>() .Deserialize(result.ReturnValue); Assert.NotNull(resultObject); Assert.Equal(testObject.IntProperty, resultObject.IntProperty); Assert.Equal(testObject.StringProperty, resultObject.StringProperty); Assert.Equal( testObject.NestedObject.DoubleProperty, resultObject.NestedObject.DoubleProperty); argumentsData = new byte[1][]; argumentsData[0] = serializerFactory.CreateSerializer <string>() .Serialize(SerializableObject.TestString); result = serviceDispatcher.Dispatch(serviceInstance, new RpcMessage { ServiceCode = typeof(ITestService).FullName.GetHashCode(), OperationCode = 2, ArgumentsData = argumentsData }); Assert.NotNull(result); Assert.False(result.HasReturnValue); Assert.Equal(1, callsCount); }