Exemplo n.º 1
0
        public async Task Download_WhenResponseIsASuccess_ReturnsRedirectResult()
        {
            //Arrange
            const string schemaName = "test schema";

            const string schemaUrl = "http://wherever";

            DatasetSchemaSasUrlResponseModel downloadDatasetSchemaResponse = new DatasetSchemaSasUrlResponseModel
            {
                SchemaUrl = schemaUrl
            };

            ApiResponse <DatasetSchemaSasUrlResponseModel> apiResponse = new ApiResponse <DatasetSchemaSasUrlResponseModel>(HttpStatusCode.OK, downloadDatasetSchemaResponse);

            IDatasetsApiClient apiClient = CreateApiClient();

            apiClient
            .GetDatasetSchemaSasUrl(Arg.Is <DatasetSchemaSasUrlRequestModel>(m => m.DatasetDefinitionId == schemaName))
            .Returns(apiResponse);

            DownloadDatasetSchemaController controller = CreateController(apiClient);

            //Act
            IActionResult actionResult = await controller.Download(schemaName);

            //Assert
            actionResult
            .Should()
            .BeOfType <RedirectResult>()
            .Which
            .Url
            .Should()
            .Be(schemaUrl);
        }
Exemplo n.º 2
0
        public async Task GetDatasetSchemaSasUrl_GivenModelAndDatasetNameDoesNotContainSlashes_GetSasUrl()
        {
            //Arrange
            const string sasUrl = "https://wherever.naf?jhjhjhjhjhhjhjhjhjjhj";

            DatasetSchemaSasUrlRequestModel model = new DatasetSchemaSasUrlRequestModel
            {
                DatasetDefinitionId = "12345"
            };

            string json = JsonConvert.SerializeObject(model);

            byte[]       byteArray = Encoding.UTF8.GetBytes(json);
            MemoryStream stream    = new MemoryStream(byteArray);

            HttpRequest request = Substitute.For <HttpRequest>();

            request
            .Body
            .Returns(stream);

            IBlobClient blobClient = CreateBlobClient();

            blobClient
            .GetBlobSasUrl(Arg.Any <string>(), Arg.Any <DateTimeOffset>(), Arg.Any <SharedAccessBlobPermissions>())
            .Returns(sasUrl);

            DatasetDefinition datasetDefinition = new DatasetDefinition()
            {
                Id   = "12345",
                Name = "14 15",
            };

            IDatasetRepository datasetRepository = CreateDataSetsRepository();

            datasetRepository
            .GetDatasetDefinition(Arg.Is(model.DatasetDefinitionId))
            .Returns(datasetDefinition);

            DefinitionsService definitionsService = CreateDefinitionsService(
                datasetsRepository: datasetRepository,
                blobClient: blobClient);

            //Act
            IActionResult result = await definitionsService.GetDatasetSchemaSasUrl(request);

            //Assert
            result
            .Should()
            .BeOfType <OkObjectResult>();

            OkObjectResult okObjectResult = result as OkObjectResult;

            DatasetSchemaSasUrlResponseModel responseModel = okObjectResult.Value as DatasetSchemaSasUrlResponseModel;

            responseModel
            .SchemaUrl
            .Should()
            .Be(sasUrl);

            blobClient
            .Received(1)
            .GetBlobSasUrl(Arg.Is("schemas/14 15.xlsx"), Arg.Any <DateTimeOffset>(), Arg.Any <SharedAccessBlobPermissions>());
        }