Beispiel #1
0
        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);
        }
Beispiel #2
0
        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"));
        }
Beispiel #3
0
        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));
            }
        }
Beispiel #4
0
        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
        }