public async Task CreateRange_Bad_Request_Object()
        {
            // Arrange
            var models = new object[]
            {
                new { Name = "Name 1" },
                new { Name = "Name 2" },
                new { Name = "Name 3" }
            };

            _mediator.Setup(x => x.Send(
                                It.Is <CreateRangeRequest <object, object> >(y => y.Models == models),
                                It.IsAny <CancellationToken>()))
            .ThrowsAsync(new Exception());
            var controller = new FakeRangedClassController(_mediator.Object, Mock.Of <IMemoryCache>(), Mock.Of <IOptions <CacheOptions> >());

            // Act
            var createRange = await controller.CreateRange(models);

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

            _mediator.Verify(x => x.Publish(
                                 It.IsAny <CreateRangeNotification <object> >(),
                                 It.IsAny <CancellationToken>()), Times.Exactly(2));
            Assert.Equal(models, result.Value);
        }
        public async Task CreateRange_Ok()
        {
            // Arrange
            var models = new object[]
            {
                new { Name = "Name 1" },
                new { Name = "Name 2" },
                new { Name = "Name 3" }
            };
            var keyValues = new[]
            {
                new object[] { new { } },
                new object[] { new { } },
                new object[] { new { } }
            };

            _mediator.Setup(x => x.Send(
                                It.Is <CreateRangeRequest <object, object> >(y => y.Models == models),
                                It.IsAny <CancellationToken>()))
            .ReturnsAsync((models, keyValues));
            var cache = new Mock <IMemoryCache>();

            cache.Setup(x => x.CreateEntry(It.IsAny <object[]>())).Returns(Mock.Of <ICacheEntry>());
            var controller = new FakeRangedClassController(_mediator.Object, cache.Object, Mock.Of <IOptions <CacheOptions> >());

            // Act
            var createRange = await controller.CreateRange(models);

            // Assert
            var result = Assert.IsType <OkObjectResult>(createRange);

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