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