public async Task Delete_No_Content()
        {
            // Arrange
            var keyValues  = new object[] { Guid.NewGuid() };
            var controller = new FakeClassController(_mediator.Object, Mock.Of <IMemoryCache>(), Mock.Of <IOptions <CacheOptions> >());

            // Act
            var delete = await controller.Delete(keyValues);

            // Assert
            Assert.IsType <NoContentResult>(delete);
            _mediator.Verify(x => x.Publish(
                                 It.IsAny <DeleteNotification>(),
                                 It.IsAny <CancellationToken>()), Times.Exactly(2));
        }
        public async Task Delete_Bad_Request_Id()
        {
            // Arrange
            var keyValues = new object[] { Guid.NewGuid() };

            _mediator.Setup(x => x.Send(
                                It.Is <DeleteRequest>(y => y.KeyValues[0] == keyValues[0]),
                                It.IsAny <CancellationToken>()))
            .ThrowsAsync(new Exception());
            var controller = new FakeClassController(_mediator.Object, Mock.Of <IMemoryCache>(), Mock.Of <IOptions <CacheOptions> >());

            // Act
            var delete = await controller.Delete(keyValues);

            // Assert
            var result = Assert.IsType <BadRequestObjectResult>(delete);

            _mediator.Verify(x => x.Publish(
                                 It.IsAny <DeleteNotification>(),
                                 It.IsAny <CancellationToken>()), Times.Exactly(2));
            Assert.Equal(keyValues, result.Value);
        }