public async Task ReturnObjecResultsWithHybridConnectionDtoAndStatusCodeOkAsync() { // Arrange IRelayAzureManagementService relayAzureManagementService = A.Fake <IRelayAzureManagementService>(); ILogger logger = A.Fake <ILogger>(); var sut = new RelayHybridConnectionApi(relayAzureManagementService); var httpContext = new DefaultHttpContext(); var createRelayStorageDto = new CreateRelayDto() { TenantId = TestHelper.TenantId }; var httpRequest = new DefaultHttpRequest(httpContext) { Body = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(createRelayStorageDto))) }; var hybridConnectionDto = new HybridConnectionDto(TestHelper.GetDefaultLocalHostUri, new PolicyDto[2] { TestHelper.GetListenPolicyDto(), TestHelper.GetSendPolicyDto() }); A.CallTo(() => relayAzureManagementService.CreateHybridConnection(createRelayStorageDto)).WithAnyArguments().Returns(hybridConnectionDto); // Act IActionResult actual = await sut.CreateRelayHybridConnectionAsync(httpRequest, logger); // Assert Assert.Equal(HttpStatusCode.OK, (HttpStatusCode)((ObjectResult)actual).StatusCode); Assert.Equal(hybridConnectionDto, (HybridConnectionDto)((ObjectResult)actual).Value); }
public async Task ReturnBadRequestWhenServiceCallReturnsNullAsync() { // Arrange IRelayAzureManagementService relayAzureManagementService = A.Fake <IRelayAzureManagementService>(); ILogger logger = A.Fake <ILogger>(); var sut = new RelayHybridConnectionApi(relayAzureManagementService); var httpContext = new DefaultHttpContext(); var httpRequest = new DefaultHttpRequest(httpContext); A.CallTo(() => relayAzureManagementService.CreateHybridConnection(null)).Returns <HybridConnectionDto>(null); // Act IActionResult actual = await sut.CreateRelayHybridConnectionAsync(httpRequest, logger); // Assert Assert.Equal(HttpStatusCode.BadRequest, (HttpStatusCode)((StatusCodeResult)actual).StatusCode); }
public async Task <IActionResult> CreateRelayHybridConnectionAsync( [HttpTrigger(AuthorizationLevel.Function, "post", Route = "relay/hybridconnection")] HttpRequest req, ILogger log) { var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); CreateRelayDto createRelayDto = JsonConvert.DeserializeObject <CreateRelayDto>(requestBody); HybridConnectionDto response = await _relayAzureManagement.CreateHybridConnection(createRelayDto); if (response != null) { return(new OkObjectResult(response)); } else { return(new BadRequestResult()); } }