Ejemplo n.º 1
0
        public void Service_Handles_Message_Method_Primitive_Int32()
        {
            Reset();

            ResonanceTransporter t1 = new ResonanceTransporter(new InMemoryAdapter("TST"));
            ResonanceTransporter t2 = new ResonanceTransporter(new InMemoryAdapter("TST"));

            t1.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors;
            t2.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors;

            t1.Connect();
            t2.Connect();

            var testService = new TestService();

            t2.RegisterService <ITestService, TestService>(testService);

            var proxy = t1.CreateClientProxy <ITestService>();

            int s = proxy.GetInt32Value(10);

            Assert.AreEqual(s, 10);

            t2.UnregisterService <ITestService>();

            Assert.ThrowsException <ResonanceResponseException>(() =>
            {
                proxy.GetStringValue("Test");
            });

            t1.Dispose(true);
            t2.Dispose(true);
        }
Ejemplo n.º 2
0
        public void Service_Handles_String_Property_Get_Set()
        {
            Reset();

            ResonanceTransporter t1 = new ResonanceTransporter(new InMemoryAdapter("TST"));
            ResonanceTransporter t2 = new ResonanceTransporter(new InMemoryAdapter("TST"));

            t1.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors;
            t2.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors;

            t1.Connect();
            t2.Connect();

            var testService = new TestService();

            t2.RegisterService <ITestService, TestService>(testService);

            var proxy = t1.CreateClientProxy <ITestService>();

            proxy.StringProperty = "Test";

            String value = proxy.StringProperty;

            Assert.AreEqual(value, "Test");

            t2.UnregisterService <ITestService>();

            Assert.ThrowsException <ResonanceResponseException>(() =>
            {
                proxy.StringProperty = "Test";
            });

            t1.Dispose(true);
            t2.Dispose(true);
        }
Ejemplo n.º 3
0
        public void Service_Handles_Request_Method_Throws_Exception()
        {
            Reset();

            ResonanceTransporter t1 = new ResonanceTransporter(new InMemoryAdapter("TST"));
            ResonanceTransporter t2 = new ResonanceTransporter(new InMemoryAdapter("TST"));

            t1.Connect();
            t2.Connect();

            var testService = new TestService();

            t2.RegisterService <ITestService, TestService>(testService);

            var proxy = t1.CreateClientProxy <ITestService>();

            var request = new CalculateRequest()
            {
                A = 10, B = 5
            };

            Assert.ThrowsException <ResonanceResponseException>(() =>
            {
                proxy.CalculateThrows(request);
            }, "Test Error");

            t2.UnregisterService <ITestService>();

            t1.Dispose(true);
            t2.Dispose(true);
        }
Ejemplo n.º 4
0
        public void Service_Handles_Request_Async_Method()
        {
            Reset();

            ResonanceTransporter t1 = new ResonanceTransporter(new InMemoryAdapter("TST"));
            ResonanceTransporter t2 = new ResonanceTransporter(new InMemoryAdapter("TST"));

            t1.Connect();
            t2.Connect();

            var testService = new TestService();

            t2.RegisterService <ITestService, TestService>(testService);

            var proxy = t1.CreateClientProxy <ITestService>();

            var request = new CalculateRequest()
            {
                A = 10, B = 5
            };

            var response = proxy.CalculateAsync(request).GetAwaiter().GetResult();

            Assert.AreEqual(response.Sum, request.A + request.B);

            t2.UnregisterService <ITestService>();

            Assert.ThrowsException <ResonanceResponseException>(() =>
            {
                proxy.CalculateAsync(request).GetAwaiter().GetResult();
            });

            t1.Dispose(true);
            t2.Dispose(true);
        }
Ejemplo n.º 5
0
        public void Service_Handles_Event_Late_Bound()
        {
            Reset();

            ResonanceTransporter t1 = new ResonanceTransporter(new InMemoryAdapter("TST"));
            ResonanceTransporter t2 = new ResonanceTransporter(new InMemoryAdapter("TST"));

            t1.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors;
            t2.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors;

            var testService = new TestService();

            t2.RegisterService <ITestService, TestService>(testService);

            var proxy = t1.CreateClientProxy <ITestService>();

            List <double> sums = new List <double>();

            proxy.CalculateResponseEvent += (x, response) =>
            {
                sums.Add(response.Sum);
            };

            //Connect after event registration...
            t2.Connect(); //Connect the event receiver first because event registration happens right after connection...
            t1.Connect();

            Thread.Sleep(1000);

            testService.RaiseCalculateResponseEvent(new CalculateResponse()
            {
                Sum = 1
            });
            testService.RaiseCalculateResponseEvent(new CalculateResponse()
            {
                Sum = 2
            });
            testService.RaiseCalculateResponseEvent(new CalculateResponse()
            {
                Sum = 3
            });

            TestHelper.WaitWhile(() => sums.Count < 3, TimeSpan.FromSeconds(5));

            Assert.AreEqual(sums[0], 1);
            Assert.AreEqual(sums[1], 2);
            Assert.AreEqual(sums[2], 3);

            t2.UnregisterService <ITestService>();

            t1.Dispose(true);
            t2.Dispose(true);
        }
Ejemplo n.º 6
0
        public void Service_Handles_Event_With_EventArgs()
        {
            Reset();

            ResonanceTransporter t1 = new ResonanceTransporter(new InMemoryAdapter("TST"));
            ResonanceTransporter t2 = new ResonanceTransporter(new InMemoryAdapter("TST"));

            t1.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors;
            t2.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors;

            t1.Connect();
            t2.Connect();

            var testService = new TestService();

            t2.RegisterService <ITestService, TestService>(testService);

            var proxy = t1.CreateClientProxy <ITestService>();

            List <double> sums = new List <double>();

            proxy.CalculateResponseEventWithArgs += (x, e) =>
            {
                sums.Add(e.Response.Sum);
            };

            Thread.Sleep(1000);

            testService.RaiseCalculateResponseEventWithArgs(new CalculateResponse()
            {
                Sum = 1
            });
            testService.RaiseCalculateResponseEventWithArgs(new CalculateResponse()
            {
                Sum = 2
            });
            testService.RaiseCalculateResponseEventWithArgs(new CalculateResponse()
            {
                Sum = 3
            });

            TestHelper.WaitWhile(() => sums.Count < 3, TimeSpan.FromSeconds(5));

            Assert.AreEqual(sums[0], 1);
            Assert.AreEqual(sums[1], 2);
            Assert.AreEqual(sums[2], 3);

            t2.UnregisterService <ITestService>();

            t1.Dispose(true);
            t2.Dispose(true);
        }
Ejemplo n.º 7
0
        public void Service_Handles_Message_Async_Method()
        {
            Reset();

            ResonanceTransporter t1 = new ResonanceTransporter(new InMemoryAdapter("TST"));
            ResonanceTransporter t2 = new ResonanceTransporter(new InMemoryAdapter("TST"));

            t1.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors;
            t2.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors;

            t1.Connect();
            t2.Connect();

            var testService = new TestService();

            t2.RegisterService <ITestService, TestService>(testService);

            var proxy = t1.CreateClientProxy <ITestService>();

            var request = new CalculateRequest()
            {
                A = 10, B = 5
            };

            proxy.CalculateVoidAsync(request).GetAwaiter().GetResult();

            Assert.AreEqual(receivedRequest.A + receivedRequest.B, request.A + request.B);

            t2.UnregisterService <ITestService>();

            Assert.ThrowsException <ResonanceResponseException>(() =>
            {
                proxy.CalculateVoidAsync(request).GetAwaiter().GetResult();
            });

            t1.Dispose(true);
            t2.Dispose(true);
        }