public async Task DeleteAsync_Calls_Service() { // Arrange const int id = 0; var serviceMock = new Mock <IDeleteService <Resource> >(); var controller = new ResourceController(new Mock <IJsonApiOptions>().Object, NullLoggerFactory.Instance, delete: serviceMock.Object); // Act await controller.DeleteAsync(id); // Assert serviceMock.Verify(m => m.DeleteAsync(id), Times.Once); }
public async Task DeleteAsync_Throws_405_If_No_Service() { // Arrange const int id = 0; var controller = new ResourceController(new Mock <IJsonApiOptions>().Object, NullLoggerFactory.Instance, delete: null); // Act var exception = await Assert.ThrowsAsync <JsonApiException>(() => controller.DeleteAsync(id)); // Assert Assert.Equal(405, exception.GetStatusCode()); }
public async Task DeleteAsync_Throws_405_If_No_Service() { // Arrange const int id = 0; var controller = new ResourceController(new Mock <IJsonApiOptions>().Object, NullLoggerFactory.Instance); // Act Func <Task> asyncAction = () => controller.DeleteAsync(id, CancellationToken.None); // Assert var exception = await Assert.ThrowsAsync <RequestMethodNotAllowedException>(asyncAction); Assert.Equal(HttpStatusCode.MethodNotAllowed, exception.Errors[0].StatusCode); Assert.Equal(HttpMethod.Delete, exception.Method); }