Class TestsManagerImpl

    • Method Detail

      • saveTestClass

        public void saveTestClass​(TestClass testClass)
        Description copied from interface: TestsManager
        Save a TestClass (and included TestCases) to the database
        Specified by:
        saveTestClass in interface TestsManager
        Parameters:
        testClass - to save
      • saveTestCase

        public void saveTestCase​(TestCase testCase)
        Description copied from interface: TestsManager
        Save an individual TestCase to the database
        Specified by:
        saveTestCase in interface TestsManager
        Parameters:
        testCase - to save
      • getTestCaseResultById

        public TestCaseResult getTestCaseResultById​(long testCaseId)
        Description copied from interface: TestsManager
        Find a specific testCaseResult by id
        Specified by:
        getTestCaseResultById in interface TestsManager
        Parameters:
        testCaseId - of the test you want to find
        Returns:
        the testCaseResult corresponding to the id provided.
      • getTestClassResultById

        public TestClassResult getTestClassResultById​(long testClassResultId)
        Description copied from interface: TestsManager
        Find a specific testClassResult by id
        Specified by:
        getTestClassResultById in interface TestsManager
        Parameters:
        testClassResultId - of the test you want to find
        Returns:
        the testClassResult corresponding to the id provided.
      • getTestClassById

        @Nullable
        public @Nullable TestClass getTestClassById​(long testClassId)
        Description copied from interface: TestsManager
        Find a specific testClass by id
        Specified by:
        getTestClassById in interface TestsManager
        Parameters:
        testClassId - of the test class you want to find
        Returns:
        the testClass corresponding to the id provided.
      • getTestCaseById

        @Nullable
        public @Nullable TestCase getTestCaseById​(long testCaseId)
        Description copied from interface: TestsManager
        Find a specific testCase by id
        Specified by:
        getTestCaseById in interface TestsManager
        Parameters:
        testCaseId - of the test case you want to find
        Returns:
        the testCase corresponding to the id provided.
      • getTestsForBuildResultByState

        @NotNull
        public @NotNull List<TestCaseResult> getTestsForBuildResultByState​(BuildResultsSummary summary,
                                                                           TestState state)
        Description copied from interface: TestsManager
        Retrieves a list of testCaseResults for a BuildResultSummary based on their state (e.f FAILED or SUCCESS)
        Specified by:
        getTestsForBuildResultByState in interface TestsManager
        Parameters:
        summary - the BuildResultsSummary to get the tests for
        state - - The TestState to search for.
        Returns:
        a list of testCaseResults for a BuildResultSummary with the given state
      • getTestsForBuildResultByState

        @NotNull
        public @NotNull List<TestCaseResult> getTestsForBuildResultByState​(BuildResultsSummary summary,
                                                                           TestState state,
                                                                           int firstResult,
                                                                           int maxCount)
        Description copied from interface: TestsManager
        Retrieves a list of testCaseResults for a BuildResultSummary based on their state (e.f FAILED or SUCCESS). To be used whenever pagination is required.
        Specified by:
        getTestsForBuildResultByState in interface TestsManager
        Parameters:
        summary - the BuildResultsSummary to get the tests for
        state - - The TestState to search for.
        firstResult - - index of the first result
        maxCount - - maximum amount of records returned
        Returns:
        a list of testCaseResults for a BuildResultSummary with the given state
      • getTestsForBuildResultByDeltaState

        @NotNull
        public @NotNull List<TestCaseResult> getTestsForBuildResultByDeltaState​(BuildResultsSummary summary,
                                                                                TestDeltaState deltaState,
                                                                                int firstResult,
                                                                                int maxCount)
        Description copied from interface: TestsManager
        Retrieves a list of testCaseResults for a BuildResultSummary based on their delta state (e.g BROKEN, FIXED)
        Specified by:
        getTestsForBuildResultByDeltaState in interface TestsManager
        Parameters:
        summary - the BuildResultsSummary to get the tests for
        deltaState - - The TestDeltaState to search for.
        firstResult - - index of the first result
        maxCount - - maximum amount of records returned
        Returns:
        a list of testCaseResults for a BuildResultSummary with the given delta state
      • getTestsForChainResultByDeltaStates

        @NotNull
        public @NotNull List<TestCaseResult> getTestsForChainResultByDeltaStates​(@NotNull
                                                                                 @NotNull ChainResultsSummary summary,
                                                                                 @NotNull
                                                                                 @NotNull TestDeltaState[] deltaStates,
                                                                                 int firstResult,
                                                                                 int maxCount)
        Description copied from interface: TestsManager
        Retrieves a list of testCaseResults for a ChainResultSummary based on their delta state (e.g BROKEN, FIXED)
        Specified by:
        getTestsForChainResultByDeltaStates in interface TestsManager
        firstResult - - index of the first result
        maxCount - - maximum amount of records returned
        Returns:
        testCaseResults
      • getLastNFailingResults

        @NotNull
        public @NotNull List<Pair<TestCaseResult,​Integer>> getLastNFailingResults​(@NotNull
                                                                                        @NotNull TestCase testCase,
                                                                                        int number)
        Description copied from interface: TestsManager
        Retrieve the last n failing testResults for this given test case, latest first.
        Specified by:
        getLastNFailingResults in interface TestsManager
        Parameters:
        testCase - to look for the results for.
        number - of results to retrieve
        Returns:
        List of pairs containing the offending TestCaseResult and the build number it occurred in.
      • getLastNFailingResults

        @NotNull
        public @NotNull List<Pair<TestCaseResult,​Integer>> getLastNFailingResults​(@NotNull
                                                                                        @NotNull TestCase testCase,
                                                                                        @NotNull
                                                                                        @NotNull List<BuildResultsSummary> buildResults,
                                                                                        int number)
        Description copied from interface: TestsManager
        Retrieve the last n failing testResults for this given test case, but only those that occurred within the provided build results. Latest first.
        Specified by:
        getLastNFailingResults in interface TestsManager
        Parameters:
        testCase - to look for the results for.
        buildResults - to search in for the tests.
        number - of results to retrieve
        Returns:
        List of pairs containing the offending TestCaseResult and the build number it occurred in.
      • getLongestRunningTestCases

        @NotNull
        public @NotNull List<TestCase> getLongestRunningTestCases​(@NotNull
                                                                  @NotNull ImmutablePlan plan)
        Description copied from interface: TestsManager
        Provide a list of the top ten longest running tests for a plan, based on the duration of the TestCase's TestCaseResults Finds top 10 results in order (longest first)
        Specified by:
        getLongestRunningTestCases in interface TestsManager
        Parameters:
        plan - to search in for the tests.
        Returns:
        List of TestCases
      • getMostFailingTestCases

        @NotNull
        public @NotNull List<Pair<TestCase,​Long>> getMostFailingTestCases​(@NotNull
                                                                                @NotNull ImmutablePlan plan)
        Description copied from interface: TestsManager
        Provide a list of the top 10 most failing test cases for a plan. It is calculated based on failure count, not percentage. Results are ordered from most failing to least failing.
        Specified by:
        getMostFailingTestCases in interface TestsManager
        Parameters:
        plan - to search for the tests
        Returns:
        List of Pairs containing the testCase and the number of failures found (int)
      • getMostFailingTestCases

        @NotNull
        public @NotNull List<Pair<TestCase,​Long>> getMostFailingTestCases​(@NotNull
                                                                                @NotNull List<BuildResultsSummary> buildResults)
        Description copied from interface: TestsManager
        Provide a list of the top 10 most failing test cases for a plan. It is calculated based on failure count, not percentage Results are ordered from most failing to least failing.
        Specified by:
        getMostFailingTestCases in interface TestsManager
        Parameters:
        buildResults - to search in for the tests.
        Returns:
        List of Pairs containing the testCase and the number of failures found (int)
      • getLongestToFixTestCases

        @NotNull
        public @NotNull List<Pair<TestCase,​Float>> getLongestToFixTestCases​(@NotNull
                                                                                  @NotNull ImmutablePlan plan)
        Description copied from interface: TestsManager
        Retrieve a list of the test cases that have taken the longest amount of time to fix. Returns top 10 with the longest to fix first.
        Specified by:
        getLongestToFixTestCases in interface TestsManager
        Parameters:
        plan - to search for results in
        Returns:
        List of Pairs containing the testCase and the average number of builds between breakages and its corresponding fix (float)
      • getLongestToFixTestCases

        @NotNull
        public @NotNull List<Pair<TestCase,​Float>> getLongestToFixTestCases​(@NotNull
                                                                                  @NotNull List<BuildResultsSummary> buildResults)
        Description copied from interface: TestsManager
        Retrieve a list of the test cases that have taken the longest amount of time to fix. Returns top 10 with the longest to fix first.
        Specified by:
        getLongestToFixTestCases in interface TestsManager
        Parameters:
        buildResults - to search in for the tests.
        Returns:
        List of Pairs containing the testCase and the average number of builds between breakages and its corresponding fix (float)
      • getTestCaseResults

        @NotNull
        public @NotNull List<TestCaseResult> getTestCaseResults​(TestCase testCase,
                                                                long buildNumber)
        Description copied from interface: TestsManager
        Find a specific run of a testCase
        Specified by:
        getTestCaseResults in interface TestsManager
        Parameters:
        testCase - to look for
        buildNumber - of the build the run should have occurred in
        Returns:
        the TestCaseResult for the given test case, if it ran in the given build.
      • getSucceedingSinceBuildResultSummary

        @Nullable
        public @Nullable BuildResultsSummary getSucceedingSinceBuildResultSummary​(TestCase testCase)
        Description copied from interface: TestsManager
        Find the build in which the given test has been successful since. AKA the last recored "FIXED" test run.
        Specified by:
        getSucceedingSinceBuildResultSummary in interface TestsManager
        Parameters:
        testCase - to search history for.
        Returns:
        the BuildResultSummary that this test has been successful since.
      • copyTestResultsToBuildResultsSummary

        public void copyTestResultsToBuildResultsSummary​(@NotNull
                                                         @NotNull BuildResultsSummary summary,
                                                         @NotNull
                                                         @NotNull BuildResults buildResults,
                                                         @NotNull
                                                         @NotNull BuildContext buildContext)
        Description copied from interface: TestsManager
        Converts the test results sent back from the agent to a list of TestClassResults and attaches them to the BRS. Also updates (but does not save) testResultsSummary information in the BRS. This method does not save the test results, or the summary, but does save TestClass and TestCase objects to the database as required.
        Specified by:
        copyTestResultsToBuildResultsSummary in interface TestsManager
        Parameters:
        summary - for the interesting tests to be attached to.
        buildResults - for the boring tests to be attached to
        buildContext - for the build that has the tests we want to move
      • getTestClassResults

        @NotNull
        public @NotNull List<TestClassResult> getTestClassResults​(@NotNull
                                                                  @NotNull PlanResultKey planResultKey)
        Description copied from interface: TestsManager
        Retrieves a list of all testClassResults for a BuildResultSummary
        Specified by:
        getTestClassResults in interface TestsManager
        Parameters:
        planResultKey - key of the BuildResultsSummary to get the tests class results for
        Returns:
        a list of all testClassResults for the BuildResultSummary