public async Task get_property_details_by_reference() { var mockLogger = new Mock <ILoggerAdapter <PropertyActions> >(); var request = new ByPropertyRefRequest(); var response = new PropertyGetResponse() { Success = true, Property = new PropertyDto() { ShortAddress = "Front Office, Robert House, 6 - 15 Florfield Road", PostCodeValue = "E8 1DT", Reference = "43453543" } }; var fakeService = new Mock <IHackneyPropertyService>(); fakeService.Setup(service => service.GetPropertyByRefAsync(request)) .ReturnsAsync(response); var fakeRequestBuilder = new Mock <IHackneyPropertyServiceRequestBuilder>(); fakeRequestBuilder.Setup(service => service.BuildByPropertyRefRequest("43453543")).Returns(request); PropertyActions propertyActions = new PropertyActions(fakeService.Object, fakeRequestBuilder.Object, mockLogger.Object); var results = await propertyActions.FindPropertyDetailsByRef("43453543"); var property = new { address = "Front Office, Robert House, 6 - 15 Florfield Road", postcode = "E8 1DT", propertyReference = "43453543", maintainable = false }; Assert.Equal(property, results); }
public async Task get_property_details_by_reference_raises_an_exception_if_the_service_responds_with_an_error() { var mockLogger = new Mock <ILoggerAdapter <PropertyActions> >(); var request = new ByPropertyRefRequest(); var response = new PropertyGetResponse { Success = false, Property = new PropertyDto() }; var fakeService = new Mock <IHackneyPropertyService>(); fakeService.Setup(service => service.GetPropertyByRefAsync(It.IsAny <ByPropertyRefRequest>())) .ReturnsAsync(response); var fakeRequestBuilder = new Mock <IHackneyPropertyServiceRequestBuilder>(); fakeRequestBuilder.Setup(service => service.BuildByPropertyRefRequest("525252525")).Returns(request); PropertyActions propertyActions = new PropertyActions(fakeService.Object, fakeRequestBuilder.Object, mockLogger.Object); await Assert.ThrowsAsync <HackneyRepairs.Actions.PropertyServiceException>(async() => await propertyActions.FindPropertyDetailsByRef("525252525")); }
public Task <PropertyGetResponse> GetPropertyByRefAsync(ByPropertyRefRequest request) { switch (request.PropertyReference) { case "525252525": return(Task.Run(() => new PropertyGetResponse() { Property = new PropertyDto { ShortAddress = "Back Office, Robert House, 6 - 15 Florfield Road ", PostCodeValue = "E8 1DT", Reference = "525252525" }, Success = true })); case "425252525": return(Task.Run(() => new PropertyGetResponse() { Property = null, Success = false, })); case "42525252512": return(Task.Run(() => new PropertyGetResponse() { Property = null, Success = true, })); default: var response = new PropertyGetResponse() { Property = new PropertyDto(), Success = true }; return(Task.Run(() => response)); } }
public IResponse Request(IRequest request, IRecipientCallback callback) { try { switch (request) { case GetBindingDescriptionsRequest getBindingsReq: var getBindingsResp = new GetBindingDescriptionsResponse(); foreach (var obj in _registeredObjects) { getBindingsResp.bindings.Add(obj.Key, obj.Value.Description); } return(getBindingsResp); case SubscribeRequest subscribeReq: var subscribeObj = _registeredObjects[subscribeReq.objectId]; subscribeObj.Subscribe(subscribeReq.eventId, callback); var subscribeResponse = new SubscribeResponse() { objectId = subscribeReq.objectId, eventId = subscribeReq.eventId }; return(subscribeResponse); case UnsubscribeRequest unsubscribeReq: var unsubscribeObj = _registeredObjects[unsubscribeReq.objectId]; unsubscribeObj.Unsubscribe(unsubscribeReq.eventId, callback); var unsubscribeResponse = new UnsubscribeResponse() { objectId = unsubscribeReq.objectId, eventId = unsubscribeReq.eventId }; return(unsubscribeResponse); case PropertyGetRequest propertyGetReq: var propertyGetObj = _registeredObjects[propertyGetReq.objectId]; object propertyGetValue = propertyGetObj.GetValue(propertyGetReq.propertyId); var propertyGetResponse = new PropertyGetResponse() { objectId = propertyGetReq.objectId, propertyId = propertyGetReq.propertyId, value = propertyGetValue }; return(propertyGetResponse); case PropertySetRequest propertySetReq: var propertySetObj = _registeredObjects[propertySetReq.objectId]; propertySetObj.SetValue(propertySetReq.propertyId, propertySetReq.value); var propertySetResponse = new PropertySetResponse() { objectId = propertySetReq.objectId, propertyId = propertySetReq.propertyId }; return(propertySetResponse); case InvokeRequest invokeReq: var invokeObj = _registeredObjects[invokeReq.objectId]; object invokeResult = invokeObj.Invoke(invokeReq.methodId, invokeReq.methodArgs); var invokeResponse = new InvokeResponse() { objectId = invokeReq.objectId, methodId = invokeReq.methodId, result = invokeResult }; return(invokeResponse); default: if (request != null) { throw new RecipientBindingException($"Unsupported request type: {request.requestType}"); } else { throw new RecipientBindingException($"Request failed to deserialize."); } } } catch (RecipientBindingException ex) { var exceptionResponse = new ExceptionResponse() { exception = ex }; #pragma warning disable EA003 // Catch block swallows an exception return(exceptionResponse); } #pragma warning restore EA003 // Catch block swallows an exception }