コード例 #1
0
        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);
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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);
        }