Пример #1
0
        public async void ConvertsJsonRPCtoHttpResponse_usingconvert()
        {
            var request      = "notempty";
            var parser       = Mock <IJsonRpcRequestParser>();
            var parserResult = new JsonRpcParserResult {
                Success = true, Request = new JsonRpcRequest {
                    Method = "method"
                }
            };

            parser.Setup(p => p.Parse(request)).Returns(parserResult);

            var mockedCommand  = Mock <ICommand>();
            var commandLocator = Mock <ICommandLocator>();

            commandLocator.Setup(l => l.Locate(parserResult.Request.Method))
            .Returns(mockedCommand.Object);

            var translator   = Mock <IJsonRpcCommandTranslator>();
            var jsonResponse = new JsonRpcResponse();

            translator.Setup(t => t.ExecuteCommand(mockedCommand.Object, parserResult.Request, clientInfo))
            .Returns(Task.FromResult(jsonResponse));

            var converter    = Mock <IJsonRpcHttpConverter>();
            var httpResponse = new HttpResponse();

            converter.Setup(c => c.Convert(jsonResponse))
            .Returns(httpResponse);

            var result = await ClassUnderTest.Process(request, clientInfo);

            Assert.Same(httpResponse, result);
        }
Пример #2
0
        public async void PassesExecutionToTranslator_WhenCommandIsLocated()
        {
            var request      = "notempty";
            var parser       = Mock <IJsonRpcRequestParser>();
            var parserResult = new JsonRpcParserResult {
                Success = true, Request = new JsonRpcRequest {
                    Method = "method"
                }
            };

            parser.Setup(p => p.Parse(request)).Returns(parserResult);

            var mockedCommand  = Mock <ICommand>();
            var commandLocator = Mock <ICommandLocator>();

            commandLocator.Setup(l => l.Locate(parserResult.Request.Method))
            .Returns(mockedCommand.Object);
            var translator = Mock <IJsonRpcCommandTranslator>();

            translator.Setup(t => t.ExecuteCommand(mockedCommand.Object, parserResult.Request, clientInfo))
            .Returns(Task.FromResult(new JsonRpcResponse()));
            await ClassUnderTest.Process(request, clientInfo);

            translator.Verify(t => t.ExecuteCommand(mockedCommand.Object, parserResult.Request, clientInfo));
        }
Пример #3
0
        public async void UnparsableRequest_Returns400Result()
        {
            var request      = "notempty";
            var parser       = Mock <IJsonRpcRequestParser>();
            var parserResult = new JsonRpcParserResult();

            parser.Setup(p => p.Parse(request)).Returns(parserResult);

            var result = await ClassUnderTest.Process(request, clientInfo);

            Assert.Equal(400, result.HttpCode);
            Assert.Equal("Could not parse RPC Request", result.Body);
        }
Пример #4
0
        public async void UnmatchedMethod_Returns404()
        {
            var request      = "notempty";
            var parser       = Mock <IJsonRpcRequestParser>();
            var parserResult = new JsonRpcParserResult {
                Success = true, Request = new JsonRpcRequest {
                    Method = "method"
                }
            };

            parser.Setup(p => p.Parse(request)).Returns(parserResult);

            var commandLocator = Mock <ICommandLocator>();

            commandLocator.Setup(l => l.Locate(parserResult.Request.Method))
            .Returns((ICommand)null);

            var result = await ClassUnderTest.Process(request, clientInfo);

            Assert.Equal(404, result.HttpCode);
            Assert.Equal("Could not locate requested method", result.Body);
        }