Exemple #1
0
        public void InvokeVoidReturnWithExceptionTest()
        {
            // Arrange
            var    objectId = "objId1";
            double args0    = 1.1;
            string args1    = "test";
            NotImplementedException exception = null;

            _regObjectMock.Setup(o => o.VoidReturnMethod(new object[] { args0, args1 })).Callback <object[]>(objs =>
            {
                exception = new NotImplementedException("THIS IS AN EMERGENCY BROADCAST!");
                throw exception;
            });
            var server  = new Recipient();
            var request = new InvokeRequest()
            {
                objectId   = objectId,
                methodId   = ObjectDescriptor.GetMethodId <IRegisteredObject>(nameof(IRegisteredObject.VoidReturnMethod)),
                methodArgs = new object[] { args0, args1 }
            };

            // Act
            server.Register(objectId, _regObjectMock.Object);
            var response = server.Request(request) as ExceptionResponse;

            // Assert
            _serviceMock.Verify();
            _regObjectMock.Verify();

            Assert.IsTrue(response.exception.Message.Contains(objectId) &&
                          response.exception.Message.Contains(request.methodId));
        }
Exemple #2
0
        public void InvokeVoidReturnStrTest()
        {
            // Arrange
            var    objectId = "objId1";
            string args0    = "test";

            _regObjectMock.Setup(o => o.VoidReturnMethodStr(args0));
            var server  = new Recipient();
            var request = new InvokeRequest()
            {
                objectId   = objectId,
                methodId   = ObjectDescriptor.GetMethodId <IRegisteredObject>(nameof(IRegisteredObject.VoidReturnMethodStr)),
                methodArgs = new object[] { args0 }
            };

            // Act
            server.Register(objectId, _regObjectMock.Object);
            var response = server.Request(request) as InvokeResponse;

            // Assert
            _serviceMock.Verify();
            _regObjectMock.Verify();

            Assert.AreEqual(ResponseType.invoke, response.responseType);
            Assert.AreEqual(request.objectId, response.objectId);
            Assert.AreEqual(request.methodId, response.methodId);
            Assert.IsNull(response.result);
        }
        public void InvokeVoidReturnParamsTest()
        {
            // Arrange
            string objectId = "obj1Id";
            var    proxyObj = RuntimeProxy.Create <IRegisteredObject>(objectId, _clientMock.Object);

            object[] args = null;
            _clientMock.Setup(o => o.Request(It.IsAny <InvokeRequest>())).Returns <InvokeRequest>(req =>
            {
                args = new object[]
                {
                    (req.methodArgs[0] as object[])[0],
                    (req.methodArgs[0] as object[])[1]
                };
                return(new InvokeResponse()
                {
                    objectId = objectId,
                    methodId = ObjectDescriptor.GetMethodId <IRegisteredObject>(nameof(IRegisteredObject.VoidReturnMethod)),
                    result = null
                });
            });

            // Act
            proxyObj.VoidReturnMethod("string", 2.0);

            // Assert
            _clientMock.VerifyAll();
            Assert.AreEqual("string", args[0]);
            Assert.AreEqual(2.0, args[1]);
        }