public async Task GivenValidRequestWithAcceptTextCsvHeader_ThenReturnsListOfAssetOutputModel()
        {
            //arrange
            var assetOutputModel = new AssetRegisterVersionOutputModel
            {
                Id = Faker.GlobalUniqueIndex
            };

            _mockUseCase.Setup(s =>
                               s.ExecuteAsync(It.IsAny <GetAssetRegisterVersionsRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new GetAssetRegisterVersionsResponse
            {
                AssetRegisterVersions = new List <AssetRegisterVersionOutputModel> {
                    assetOutputModel
                }
            });
            _classUnderTest.ControllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext()
            };
            _classUnderTest.ControllerContext.HttpContext.Request.Headers.Add(
                new KeyValuePair <string, StringValues>("accept", "text/csv"));
            var request = new GetAssetRegisterVersionsRequest();
            //act
            var response = await _classUnderTest.Get(request).ConfigureAwait(false);

            //assert
            response.Should().NotBeNull();
            var result = response as ObjectResult;

            result.Should().NotBeNull();
            result.Value.Should().BeOfType <List <AssetRegisterVersionOutputModel> >();
        }
        public async Task GivenInValidRequest_WhenValidatingRequest_ThenReturnsBadRequest(int?page, int?pageSize)
        {
            //arrange
            var assetOutputModel = new AssetRegisterVersionOutputModel
            {
                Id = Faker.GlobalUniqueIndex
            };

            _mockUseCase.Setup(s =>
                               s.ExecuteAsync(It.IsAny <GetAssetRegisterVersionsRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new GetAssetRegisterVersionsResponse
            {
                AssetRegisterVersions = new List <AssetRegisterVersionOutputModel> {
                    assetOutputModel
                }
            });
            _classUnderTest.ControllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext()
            };

            var request = new GetAssetRegisterVersionsRequest
            {
                Page     = page,
                PageSize = pageSize
            };
            //act
            var response = await _classUnderTest.Get(request).ConfigureAwait(false);

            //assert
            response.Should().NotBeNull();
            var result = response as StatusCodeResult;

            result.Should().NotBeNull();
            result.StatusCode.Should().Be(400);
        }