Beispiel #1
0
        public void GetValueWithExceptionTest()
        {
            // Arrange
            string objectId  = "objId1";
            var    recipient = new Recipient();
            var    request   = new PropertyGetRequest()
            {
                objectId   = objectId,
                propertyId = ObjectDescriptor.GetPropertyId <IRegisteredObject>(nameof(IRegisteredObject.StringValueProperty))
            };

            recipient.Register(objectId, _regObjectMock.Object);
            _regObjectMock.SetupGet(o => o.StringValueProperty).Throws(new NotImplementedException());

            // Act
            var response = recipient.Request(request) as ExceptionResponse;

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

            Assert.AreEqual(ResponseType.exception, response.responseType);
            Assert.IsTrue(response.exception.Message.Contains(objectId) &&
                          response.exception.Message.Contains(nameof(IRegisteredObject.StringValueProperty)));
        }
Beispiel #2
0
        internal bool GetValue(string propertyId, out object value)
        {
            var request = new PropertyGetRequest()
            {
                objectId   = _objectId,
                propertyId = propertyId
            };
            var response = _client.Request(request);

            switch (response)
            {
            case ExceptionResponse exResp:
                throw exResp.exception;

            case PropertyGetResponse propertyGetResp:
                value = propertyGetResp.value;
                if (propertyGetResp.objectId != _objectId)
                {
                    throw new InvalidResponseException($"Incorrect object ID. Expected '{_objectId}', but received '{propertyGetResp.objectId}'.");
                }
                else if (propertyGetResp.propertyId != propertyId)
                {
                    throw new InvalidResponseException($"Incorrect property ID. Expected '{propertyId}', but received '{propertyGetResp.propertyId}'.");
                }
                break;

            default:
                throw new InvalidResponseException($"Incorrect response type. Expected '{ResponseType.propertyGet}', but received '{response.responseType}'.");
            }
            return(true);
        }
Beispiel #3
0
        public void GetValueWithoutExceptionTest()
        {
            // Arrange
            string objectId      = "objId1";
            string expectedValue = "toBeExpected";

            _regObjectMock.Setup(o => o.StringValueProperty).Returns(expectedValue);
            var recipient = new Recipient();
            var request   = new PropertyGetRequest()
            {
                objectId   = objectId,
                propertyId = ObjectDescriptor.GetPropertyId <IRegisteredObject>(nameof(IRegisteredObject.StringValueProperty))
            };

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

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

            Assert.AreEqual(ResponseType.propertyGet, response.responseType);
            Assert.AreEqual(request.objectId, response.objectId);
            Assert.AreEqual(request.propertyId, response.propertyId);
            Assert.AreEqual(expectedValue, response.value);
        }