public async Task SmartContracts_HttpDeployContract_Success() { var mockMessageHandler = new Mock <HttpMessageHandler>(); var contractAddress = "Test"; var successMessage = "Contract was successfully deployed"; var response = new BuildCreateContractTransactionResponse { NewContractAddress = contractAddress, Success = true, Message = successMessage }; mockMessageHandler.Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .Returns(Task.FromResult(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(NetJSON.NetJSON.Serialize(response)) })); var httpContractDeployer = new HttpContractDeployer(new HttpClient(mockMessageHandler.Object)); DeploymentResult result = await httpContractDeployer.DeployAsync("http://test", new BuildCreateContractTransactionRequest()); Assert.True(result.Success); Assert.Equal(contractAddress, result.ContractAddress); Assert.Equal(successMessage, response.Message); }
public async Task SmartContracts_HttpDeployContract_Timeout() { var mockMessageHandler = new Mock <HttpMessageHandler>(); mockMessageHandler.Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .Throws <HttpRequestException>(); var httpContractDeployer = new HttpContractDeployer(new HttpClient(mockMessageHandler.Object)); DeploymentResult result = await httpContractDeployer.DeployAsync("http://test", new BuildCreateContractTransactionRequest()); Assert.False(result.Success); Assert.Null(result.ContractAddress); Assert.NotEmpty(result.Errors); }
public async Task SmartContracts_HttpDeployContract_Fail() { var mockMessageHandler = new Mock <HttpMessageHandler>(); mockMessageHandler.Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .Returns(Task.FromResult(new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError })); var httpContractDeployer = new HttpContractDeployer(new HttpClient(mockMessageHandler.Object)); DeploymentResult result = await httpContractDeployer.DeployAsync("http://test", new BuildCreateContractTransactionRequest()); Assert.False(result.Success); Assert.Null(result.ContractAddress); Assert.NotEmpty(result.Errors); }
public void SmartContracts_HttpDeployer_BuildsCorrectUri() { Uri uri = HttpContractDeployer.GetDeploymentUri("http://test/", "/api/Tester"); Assert.Equal("http://test/api/Tester", uri.ToString()); }