public async Task PostRelayThrowInvalidOperationExceptionWhenHttpRequestContainsNoBodyAsync() { // Arrange IRelayManagementService relayManagementService = A.Fake <IRelayManagementService>(); ILogger logger = A.Fake <ILogger>(); var sut = new ShieldManagementApi(relayManagementService); var httpContext = new DefaultHttpContext(); var httpRequest = new DefaultHttpRequest(httpContext); // Act & Assert await Assert.ThrowsAsync <InvalidOperationException>(() => sut.PostRelayInformationAsync(httpRequest, logger)); }
public async Task ReturnBadRequestStatusCodeWhenPostRelayIsCalledAndSomethingWentWrongAsync() { // Arrange IRelayManagementService relayManagementService = A.Fake <IRelayManagementService>(); ILogger logger = A.Fake <ILogger>(); var sut = new ShieldManagementApi(relayManagementService); var httpContext = new DefaultHttpContext(); var httpRequest = new DefaultHttpRequest(httpContext) { Body = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(TestHelper.GetCreateRelayStorageDto()))) }; A.CallTo(() => relayManagementService.StoreRelayAsync(TestHelper.GetCreateRelayStorageDto())).WithAnyArguments().Returns <HybridConnectionDto>(null); // Act IActionResult actual = await sut.PostRelayInformationAsync(httpRequest, logger); // Assert Assert.Equal(HttpStatusCode.BadRequest, (HttpStatusCode)((StatusCodeResult)actual).StatusCode); }