public async Task ListDatasetSchemasModel_OnGet_WhenUnableToRetrieveSpecificationThenStatusCode500Returned() { // Arrange IDatasetsApiClient datasetClient = Substitute.For <IDatasetsApiClient>(); ISpecsApiClient specsClient = Substitute.For <ISpecsApiClient>(); IMapper mapper = MappingHelper.CreateFrontEndMapper(); ILogger logger = Substitute.For <ILogger>(); string expectedSpecificationId = "1"; Specification expectedSpecification = null; specsClient .GetSpecification(Arg.Any <string>()) .Returns(new ApiResponse <Specification>(HttpStatusCode.BadRequest, expectedSpecification)); ListDatasetSchemasModel listDatasetSchemasPageModel = new ListDatasetSchemasModel(specsClient, datasetClient, mapper); // Act IActionResult result = await listDatasetSchemasPageModel.OnGet(expectedSpecificationId); // Assert result.Should().NotBeNull(); result.Should().BeOfType <StatusCodeResult>().Which.StatusCode.Should().Be(500); }
public async Task ListDatasetSchemasModel_OnGet_WhenSpecificationNotFoundThenStatusCodeNotFoundReturned() { // Arrange IDatasetsApiClient datasetClient = Substitute.For <IDatasetsApiClient>(); ISpecsApiClient specsClient = Substitute.For <ISpecsApiClient>(); IMapper mapper = MappingHelper.CreateFrontEndMapper(); ILogger logger = Substitute.For <ILogger>(); string expectedSpecificationId = "1"; Specification expectedSpecification = null; specsClient .GetSpecification(Arg.Any <string>()) .Returns(new ApiResponse <Specification>(HttpStatusCode.NotFound, expectedSpecification)); ListDatasetSchemasModel listDatasetSchemasPageModel = new ListDatasetSchemasModel(specsClient, datasetClient, mapper); // Act IActionResult result = await listDatasetSchemasPageModel.OnGet(expectedSpecificationId); // Assert result.Should().NotBeNull(); result.Should().BeOfType <NotFoundObjectResult>(); NotFoundObjectResult typeResult = result as NotFoundObjectResult; typeResult.Value.Should().Be("Specification not found"); }
public async Task ListDatasetSchemasModel_OnGet_WhenProviderDatasetsIsPresent_ThenHasProviderDatasetsAssignedIsTrue() { // Arrange IDatasetsApiClient datasetClient = Substitute.For <IDatasetsApiClient>(); ISpecsApiClient specsClient = Substitute.For <ISpecsApiClient>(); IMapper mapper = MappingHelper.CreateFrontEndMapper(); ILogger logger = Substitute.For <ILogger>(); string specificationId = "10"; Specification specification = new Specification() { Id = specificationId }; specsClient .GetSpecification(specificationId) .Returns(new ApiResponse <Specification>(HttpStatusCode.OK, specification)); List <DatasetSchemasAssigned> datasetSchemasAssigned = new List <DatasetSchemasAssigned>() { new DatasetSchemasAssigned() { Id = "ds1", Name = "Dataset Schema 1", IsSetAsProviderData = false, DatasetDefinition = new Reference("1234", "Definition 1234"), Description = "Datasets Schema 1 Description", UsedInDataAggregations = false, }, new DatasetSchemasAssigned() { Id = "providerDs", Name = "Provider Dataset", IsSetAsProviderData = true, DatasetDefinition = new Reference("5678", "Provider Dataset Definition"), } }; datasetClient .GetAssignedDatasetSchemasForSpecification(specificationId) .Returns(new ApiResponse <IEnumerable <DatasetSchemasAssigned> >(HttpStatusCode.OK, datasetSchemasAssigned.AsEnumerable())); ListDatasetSchemasModel listDatasetSchemasPageModel = new ListDatasetSchemasModel(specsClient, datasetClient, mapper); // Act IActionResult result = await listDatasetSchemasPageModel.OnGet(specificationId); // Assert result.Should().BeOfType <PageResult>() .Which.Should().NotBeNull(); listDatasetSchemasPageModel.DatasetDefinitions.Should().NotBeNull(); listDatasetSchemasPageModel.HasProviderDatasetsAssigned.Should().BeTrue(); }
public async Task ListDatasetSchemasModel_OnGet_WhenDatasetSchemasAssignedNotFoundThenNotFoundReturned() { // Arrange IDatasetsApiClient datasetClient = Substitute.For <IDatasetsApiClient>(); ISpecsApiClient specsClient = Substitute.For <ISpecsApiClient>(); IMapper mapper = MappingHelper.CreateFrontEndMapper(); ILogger logger = Substitute.For <ILogger>(); string expectedSpecificationId = "1"; Specification expectedSpecification = new Specification { FundingPeriod = new Reference("2018", "17-18"), FundingStreams = new List <FundingStream>() { new FundingStream("2018", "18-19"), }, Description = "Test Spec", Id = "1", Name = "APT Final Baselines current year" }; specsClient .GetSpecification(Arg.Any <string>()) .Returns(new ApiResponse <Specification>(HttpStatusCode.OK, expectedSpecification)); ListDatasetSchemasModel listDatasetSchemasPageModel = new ListDatasetSchemasModel(specsClient, datasetClient, mapper); datasetClient .GetAssignedDatasetSchemasForSpecification(expectedSpecificationId) .Returns(new ApiResponse <IEnumerable <DatasetSchemasAssigned> >(HttpStatusCode.NotFound, null)); // Act IActionResult result = await listDatasetSchemasPageModel.OnGet(expectedSpecificationId); // Assert result.Should().NotBeNull(); result.Should().BeOfType <NotFoundObjectResult>(); }
public async Task ListDatasetSchemasModel_OnGet_WhenDatasetsFound_ThenResultsReturned() { // Arrange IDatasetsApiClient datasetClient = Substitute.For <IDatasetsApiClient>(); ISpecsApiClient specsClient = Substitute.For <ISpecsApiClient>(); IMapper mapper = MappingHelper.CreateFrontEndMapper(); ILogger logger = Substitute.For <ILogger>(); string specificationId = "10"; Specification specification = new Specification() { Id = specificationId }; specsClient .GetSpecification(specificationId) .Returns(new ApiResponse <Specification>(HttpStatusCode.OK, specification)); List <DatasetSchemasAssigned> datasetSchemasAssigned = new List <DatasetSchemasAssigned>() { new DatasetSchemasAssigned() { Id = "ds1", Name = "Dataset Schema 1", IsSetAsProviderData = false, DatasetDefinition = new Reference("1234", "Definition 1234"), Description = "Datasets Schema 1 Description", UsedInDataAggregations = false, }, new DatasetSchemasAssigned() { Id = "ds2", Name = "Dataset Schema Two", Description = "Datasets Schema Two Description", IsSetAsProviderData = false, DatasetDefinition = new Reference("2345", "Definition 2345"), }, new DatasetSchemasAssigned() { Id = "ds3", Name = "Dataset Schema 3", IsSetAsProviderData = false, DatasetDefinition = new Reference("5555", "Definition Grouped"), }, new DatasetSchemasAssigned() { Id = "ds4", Name = "Grouped with same schema", IsSetAsProviderData = false, DatasetDefinition = new Reference("5555", "Definition Grouped"), }, new DatasetSchemasAssigned() { Id = "providerDs", Name = "Provider Dataset", IsSetAsProviderData = true, DatasetDefinition = new Reference("5678", "Provider Dataset Definition"), } }; datasetClient .GetAssignedDatasetSchemasForSpecification(specificationId) .Returns(new ApiResponse <IEnumerable <DatasetSchemasAssigned> >(HttpStatusCode.OK, datasetSchemasAssigned.AsEnumerable())); ListDatasetSchemasModel listDatasetSchemasPageModel = new ListDatasetSchemasModel(specsClient, datasetClient, mapper); // Act IActionResult result = await listDatasetSchemasPageModel.OnGet(specificationId); // Assert result.Should().BeOfType <PageResult>() .Which.Should().NotBeNull(); listDatasetSchemasPageModel.Specification.Should().NotBeNull(); listDatasetSchemasPageModel.DatasetDefinitions.Should().NotBeNull(); List <AssignedDataDefinitionToSpecificationViewModel> expectedDatasets = new List <AssignedDataDefinitionToSpecificationViewModel> { new AssignedDataDefinitionToSpecificationViewModel() { Id = datasetSchemasAssigned[0].DatasetDefinition.Id, Name = datasetSchemasAssigned[0].DatasetDefinition.Name, Datasets = new List <AssignedDatasetViewModel>() { new AssignedDatasetViewModel() { Id = datasetSchemasAssigned[0].Id, Name = datasetSchemasAssigned[0].Name, Description = datasetSchemasAssigned[0].Description, IsSetAsProviderData = false } }, }, new AssignedDataDefinitionToSpecificationViewModel() { Id = datasetSchemasAssigned[1].DatasetDefinition.Id, Name = datasetSchemasAssigned[1].DatasetDefinition.Name, Datasets = new List <AssignedDatasetViewModel>() { new AssignedDatasetViewModel() { Id = datasetSchemasAssigned[1].Id, Name = datasetSchemasAssigned[1].Name, Description = datasetSchemasAssigned[1].Description, IsSetAsProviderData = false, } }, }, new AssignedDataDefinitionToSpecificationViewModel() { Id = datasetSchemasAssigned[2].DatasetDefinition.Id, Name = datasetSchemasAssigned[2].DatasetDefinition.Name, Datasets = new List <AssignedDatasetViewModel>() { new AssignedDatasetViewModel() { Id = datasetSchemasAssigned[2].Id, Name = datasetSchemasAssigned[2].Name, Description = datasetSchemasAssigned[2].Description, IsSetAsProviderData = false }, new AssignedDatasetViewModel() { Id = datasetSchemasAssigned[3].Id, Name = datasetSchemasAssigned[3].Name, Description = datasetSchemasAssigned[3].Description, IsSetAsProviderData = false } }, }, new AssignedDataDefinitionToSpecificationViewModel() { Id = datasetSchemasAssigned[4].DatasetDefinition.Id, Name = datasetSchemasAssigned[4].DatasetDefinition.Name, Datasets = new List <AssignedDatasetViewModel>() { new AssignedDatasetViewModel() { Id = datasetSchemasAssigned[4].Id, Name = datasetSchemasAssigned[4].Name, Description = datasetSchemasAssigned[4].Description, IsSetAsProviderData = true } }, } }; listDatasetSchemasPageModel.DatasetDefinitions.Should() .BeEquivalentTo(expectedDatasets); }