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))); }
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); }
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); }