Beispiel #1
0
        public async Task GetResultCounts_GivenModelWithScenarioIdsButBothResultsReturnNull_ReturnsOKWithNoResult()
        {
            //Arrange
            TestScenariosResultsCountsRequestModel model = new TestScenariosResultsCountsRequestModel
            {
                TestScenarioIds = new[] { "1", "2" }
            };

            ILogger logger = CreateLogger();

            ITestResultsSearchService searchService = CreateTestResultsSearchService();

            searchService
            .SearchTestScenarioResultsInternal(Arg.Any <SearchModel>())
            .Returns((TestScenarioSearchResults)null);

            TestResultsCountsService service = CreateResultCountsService(searchService, logger: logger);

            //Act
            IActionResult result = await service.GetResultCounts(model);

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

            OkObjectResult okResult = result as OkObjectResult;

            ConcurrentBag <TestScenarioResultCounts> results = okResult.Value as ConcurrentBag <TestScenarioResultCounts>;

            results
            .Count
            .Should()
            .Be(0);
        }
        public async Task GetResultCounts_GivenModelWithEmptyScenariIds_ReturnsBadRequest()
        {
            //Arrange
            TestScenariosResultsCountsRequestModel model = new TestScenariosResultsCountsRequestModel
            {
                TestScenarioIds = Enumerable.Empty <string>()
            };

            string json = JsonConvert.SerializeObject(model);

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

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

            httpRequest
            .Body
            .Returns(stream);

            ILogger logger = CreateLogger();

            TestResultsCountsService service = CreateResultCountsService(logger: logger);

            //Act
            IActionResult result = await service.GetResultCounts(httpRequest);

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

            logger
            .Received(1)
            .Error(Arg.Is("Null or empty test scenario ids provided"));
        }
Beispiel #3
0
        public async Task GetResultCounts_GivenModelWithScenarioIds_ReturnsOKWithTwoResults()
        {
            //Arrange
            TestScenariosResultsCountsRequestModel model = new TestScenariosResultsCountsRequestModel
            {
                TestScenarioIds = new[] { "1", "2" }
            };

            ILogger logger = CreateLogger();

            TestScenarioSearchResults testScenarioSearchResults = new TestScenarioSearchResults
            {
                Results = new[]
                {
                    new TestScenarioSearchResult
                    {
                        TestScenarioName = "Test Name 1",
                        LastUpdatedDate  = DateTimeOffset.Now
                    },
                    new TestScenarioSearchResult
                    {
                        TestScenarioName = "Test Name 2",
                        LastUpdatedDate  = DateTimeOffset.Now
                    }
                },
                Facets = new[]
                {
                    new Facet {
                        Name = "testResult"
                    }
                }
            };

            ITestResultsSearchService searchService = CreateTestResultsSearchService();

            searchService
            .SearchTestScenarioResultsInternal(Arg.Any <SearchModel>())
            .Returns(testScenarioSearchResults);

            TestResultsCountsService service = CreateResultCountsService(searchService, logger: logger);

            // Act
            IActionResult result = await service.GetResultCounts(model);

            // Assert
            result
            .Should()
            .BeOfType <OkObjectResult>()
            .Which
            .Value
            .Should()
            .BeAssignableTo <IEnumerable <TestScenarioResultCounts> >()
            .Which
            .Should()
            .HaveCountGreaterThan(0);
        }
Beispiel #4
0
        public async Task GetResultCounts_GivenModelWithScenarioIdsButBothResultsButOnlyOneHasFacets_ReturnsOKWitOneResult()
        {
            //Arrange
            TestScenariosResultsCountsRequestModel model = new TestScenariosResultsCountsRequestModel
            {
                TestScenarioIds = new[] { "1", "2" }
            };

            ILogger logger = CreateLogger();

            TestScenarioSearchResults testScenarioSearchResults1 = new TestScenarioSearchResults();
            TestScenarioSearchResults testScenarioSearchResults2 = new TestScenarioSearchResults
            {
                Results = new[]
                {
                    new TestScenarioSearchResult
                    {
                        TestScenarioName = "Test Name",
                        LastUpdatedDate  = DateTimeOffset.Now
                    }
                },
                Facets = new[]
                {
                    new Facet {
                        Name = "testResult"
                    }
                }
            };

            ITestResultsSearchService searchService = CreateTestResultsSearchService();

            searchService
            .SearchTestScenarioResultsInternal(Arg.Any <SearchModel>())
            .Returns(testScenarioSearchResults1, testScenarioSearchResults2);

            TestResultsCountsService service = CreateResultCountsService(searchService, logger: logger);

            //Act
            IActionResult result = await service.GetResultCounts(model);

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

            OkObjectResult okResult = result as OkObjectResult;

            ConcurrentBag <TestScenarioResultCounts> results = okResult.Value as ConcurrentBag <TestScenarioResultCounts>;

            results
            .Count
            .Should()
            .Be(1);
        }
        public async Task GetResultCounts_GivenModelWithScenarioIdsButBothResultsButNoFacets_ReturnsOKWithNoResult()
        {
            //Arrange
            TestScenariosResultsCountsRequestModel model = new TestScenariosResultsCountsRequestModel
            {
                TestScenarioIds = new[] { "1", "2" }
            };

            string json = JsonConvert.SerializeObject(model);

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

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

            httpRequest
            .Body
            .Returns(stream);

            ILogger logger = CreateLogger();

            TestScenarioSearchResults testScenarioSearchResults1 = new TestScenarioSearchResults();
            TestScenarioSearchResults testScenarioSearchResults2 = new TestScenarioSearchResults();

            ITestResultsSearchService searchService = CreateTestResultsSearchService();

            searchService
            .SearchTestScenarioResults(Arg.Any <SearchModel>())
            .Returns(testScenarioSearchResults1, testScenarioSearchResults2);

            TestResultsCountsService service = CreateResultCountsService(searchService, logger: logger);

            //Act
            IActionResult result = await service.GetResultCounts(httpRequest);

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

            OkObjectResult okResult = result as OkObjectResult;

            ConcurrentBag <TestScenarioResultCounts> results = okResult.Value as ConcurrentBag <TestScenarioResultCounts>;

            results
            .Count
            .Should()
            .Be(0);
        }
Beispiel #6
0
        public async Task GetResultCounts_GivenNullModel_ReturnsBadRequest()
        {
            //Arrange
            ILogger logger = CreateLogger();

            TestResultsCountsService service = CreateResultCountsService(logger: logger);

            //Act
            IActionResult result = await service.GetResultCounts(null);

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

            logger
            .Received(1)
            .Error(Arg.Is("Null or empty test scenario ids provided"));
        }
Beispiel #7
0
        public async Task GetResultCounts_GivenModelWithEmptyScenariIds_ReturnsBadRequest()
        {
            //Arrange
            TestScenariosResultsCountsRequestModel model = new TestScenariosResultsCountsRequestModel
            {
                TestScenarioIds = Enumerable.Empty <string>()
            };

            ILogger logger = CreateLogger();

            TestResultsCountsService service = CreateResultCountsService(logger: logger);

            //Act
            IActionResult result = await service.GetResultCounts(model);

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

            logger
            .Received(1)
            .Error(Arg.Is("Null or empty test scenario ids provided"));
        }
Beispiel #8
0
        public async Task GetResultCounts_GivenModelWithScenarioIdsWithAllFacetValues_ReturnsOKeResult()
        {
            //Arrange
            TestScenariosResultsCountsRequestModel model = new TestScenariosResultsCountsRequestModel
            {
                TestScenarioIds = new[] { "1" }
            };

            ILogger logger = CreateLogger();

            TestScenarioSearchResults testScenarioSearchResults1 = new TestScenarioSearchResults
            {
                Results = new[]
                {
                    new TestScenarioSearchResult
                    {
                        TestScenarioName = "Test Name",
                        LastUpdatedDate  = DateTimeOffset.Now
                    }
                },
                Facets = new[]
                {
                    new Facet {
                        Name = "testResult", FacetValues = new[] {
                            new FacetValue {
                                Count = 10, Name = "Passed"
                            },
                            new FacetValue {
                                Count = 87, Name = "Failed"
                            },
                            new FacetValue {
                                Count = 6, Name = "Ignored"
                            }
                        }
                    }
                }
            };

            ITestResultsSearchService searchService = CreateTestResultsSearchService();

            searchService
            .SearchTestScenarioResultsInternal(Arg.Any <SearchModel>())
            .Returns(testScenarioSearchResults1);

            TestResultsCountsService service = CreateResultCountsService(searchService, logger: logger);

            //Act
            IActionResult result = await service.GetResultCounts(model);

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

            OkObjectResult okResult = result as OkObjectResult;

            ConcurrentBag <TestScenarioResultCounts> results = okResult.Value as ConcurrentBag <TestScenarioResultCounts>;

            results
            .Count
            .Should()
            .Be(1);

            results
            .First()
            .Passed
            .Should()
            .Be(10);

            results
            .First()
            .Failed
            .Should()
            .Be(87);

            results
            .First()
            .Ignored
            .Should()
            .Be(6);
        }
        public async Task GetResultCounts_GivenModelWithScenarioIdsWithAllFacetValues_ReturnsOKeResult()
        {
            //Arrange
            TestScenariosResultsCountsRequestModel model = new TestScenariosResultsCountsRequestModel
            {
                TestScenarioIds = new[] { "1" }
            };

            string json = JsonConvert.SerializeObject(model);

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

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

            httpRequest
            .Body
            .Returns(stream);

            ILogger logger = CreateLogger();

            TestScenarioSearchResults testScenarioSearchResults1 = new TestScenarioSearchResults
            {
                Results = new[]
                {
                    new TestScenarioSearchResult
                    {
                        TestScenarioName = "Test Name",
                        LastUpdatedDate  = DateTimeOffset.Now
                    }
                },
                Facets = new[]
                {
                    new Facet {
                        Name = "testResult", FacetValues = new[] {
                            new FacetValue {
                                Count = 10, Name = "Passed"
                            },
                            new FacetValue {
                                Count = 87, Name = "Failed"
                            },
                            new FacetValue {
                                Count = 6, Name = "Ignored"
                            }
                        }
                    }
                }
            };

            ITestResultsSearchService searchService = CreateTestResultsSearchService();

            searchService
            .SearchTestScenarioResults(Arg.Any <SearchModel>())
            .Returns(testScenarioSearchResults1);

            TestResultsCountsService service = CreateResultCountsService(searchService, logger: logger);

            //Act
            IActionResult result = await service.GetResultCounts(httpRequest);

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

            OkObjectResult okResult = result as OkObjectResult;

            ConcurrentBag <TestScenarioResultCounts> results = okResult.Value as ConcurrentBag <TestScenarioResultCounts>;

            results
            .Count
            .Should()
            .Be(1);

            results
            .First()
            .Passed
            .Should()
            .Be(10);

            results
            .First()
            .Failed
            .Should()
            .Be(87);

            results
            .First()
            .Ignored
            .Should()
            .Be(6);
        }
        public async Task GetResultCounts_GivenModelWithScenarioIds_ReturnsOKWithTwoResults()
        {
            //Arrange
            TestScenariosResultsCountsRequestModel model = new TestScenariosResultsCountsRequestModel
            {
                TestScenarioIds = new[] { "1", "2" }
            };

            string json = JsonConvert.SerializeObject(model);

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

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

            httpRequest
            .Body
            .Returns(stream);

            ILogger logger = CreateLogger();

            TestScenarioSearchResults testScenarioSearchResults = new TestScenarioSearchResults
            {
                Results = new[]
                {
                    new TestScenarioSearchResult
                    {
                        TestScenarioName = "Test Name 1",
                        LastUpdatedDate  = DateTimeOffset.Now
                    },
                    new TestScenarioSearchResult
                    {
                        TestScenarioName = "Test Name 2",
                        LastUpdatedDate  = DateTimeOffset.Now
                    }
                },
                Facets = new[]
                {
                    new Facet {
                        Name = "testResult"
                    }
                }
            };

            ITestResultsSearchService searchService = CreateTestResultsSearchService();

            searchService
            .SearchTestScenarioResults(Arg.Any <SearchModel>())
            .Returns(testScenarioSearchResults);

            TestResultsCountsService service = CreateResultCountsService(searchService, logger: logger);

            // Act
            IActionResult result = await service.GetResultCounts(httpRequest);

            // Assert
            result
            .Should()
            .BeOfType <OkObjectResult>()
            .Which
            .Value
            .Should()
            .BeAssignableTo <IEnumerable <TestScenarioResultCounts> >()
            .Which
            .Should()
            .HaveCountGreaterThan(0);
        }