public async Task GetAsync_Throws_405_If_No_Service() { // Arrange var controller = new ResourceController(new Mock <IJsonApiOptions>().Object, NullLoggerFactory.Instance, null); // Act var exception = await Assert.ThrowsAsync <JsonApiException>(() => controller.GetAsync()); // Assert Assert.Equal(405, exception.GetStatusCode()); }
public async Task GetAsync_Calls_Service() { // Arrange var serviceMock = new Mock <IGetAllService <Resource> >(); var controller = new ResourceController(new Mock <IJsonApiOptions>().Object, NullLoggerFactory.Instance, getAll: serviceMock.Object); // Act await controller.GetAsync(); // Assert serviceMock.Verify(m => m.GetAsync(), Times.Once); }
public async Task GetAsyncById_Calls_Service() { // Arrange const int id = 0; var serviceMock = new Mock <IGetByIdService <Resource> >(); var controller = new ResourceController(new Mock <IJsonApiOptions>().Object, NullLoggerFactory.Instance, getById: serviceMock.Object); // Act await controller.GetAsync(id, CancellationToken.None); // Assert serviceMock.Verify(service => service.GetAsync(id, CancellationToken.None), Times.Once); }
public async Task GetAsync_Throws_405_If_No_Service() { // Arrange var controller = new ResourceController(new Mock <IJsonApiOptions>().Object, NullLoggerFactory.Instance, null); // Act Func <Task> asyncAction = () => controller.GetAsync(CancellationToken.None); // Assert var exception = await Assert.ThrowsAsync <RequestMethodNotAllowedException>(asyncAction); Assert.Equal(HttpStatusCode.MethodNotAllowed, exception.Errors[0].StatusCode); Assert.Equal(HttpMethod.Get, exception.Method); }
public async Task GetAsyncById_Throws_405_If_No_Service() { // Arrange const int id = 0; var controller = new ResourceController(new Mock <IJsonApiOptions>().Object, NullLoggerFactory.Instance); // Act var exception = await Assert.ThrowsAsync <RequestMethodNotAllowedException>(() => controller.GetAsync(id)); // Assert Assert.Equal(HttpStatusCode.MethodNotAllowed, exception.Error.StatusCode); Assert.Equal(HttpMethod.Get, exception.Method); }