Class TestsManagerImpl

java.lang.Object
com.atlassian.bamboo.resultsummary.tests.TestsManagerImpl
All Implemented Interfaces:
TestsManager

public class TestsManagerImpl extends Object implements TestsManager
  • Field Details

  • Constructor Details

  • Method Details

    • 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
    • getTestsForChainResultByDeltaState

      public List<TestCaseResult> getTestsForChainResultByDeltaState(ChainResultsSummary summary, TestDeltaState deltaState, 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:
      getTestsForChainResultByDeltaState in interface TestsManager
      firstResult - - index of the first result
      maxCount - - maximum amount of records returned
      Returns:
      testCaseResults
    • 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
    • getTestsForChainResultByState

      @NotNull public @NotNull List<TestCaseResult> getTestsForChainResultByState(@NotNull @NotNull ChainResultsSummary summary, @NotNull @NotNull TestState testState, int firstResult, int maxCount)
      Description copied from interface: TestsManager
      Retrieves a list of testCaseResults for a ChainResultSummary based on their TestState
      Specified by:
      getTestsForChainResultByState in interface TestsManager
      Returns:
      testCaseResults
    • getResultStatistics

      @NotNull public @NotNull List<TestCaseResultStatisticsProvider> getResultStatistics(@NotNull @NotNull TestCase testCase)
      Description copied from interface: TestsManager
      Returns a list of wrapped TestCaseResult and BuildResultSummary for a particular test case, for use by e.g. graphs
      Specified by:
      getResultStatistics in interface TestsManager
      Parameters:
      testCase - to find the results for
      Returns:
      list of TestCaseResultStatisticsProvider for each TestCaseResult found for the TestCase
    • getResultStatistics

      @NotNull public @NotNull List<TestCaseResultStatisticsProvider> getResultStatistics(@NotNull @NotNull TestCase testCase, @NotNull @NotNull List<BuildResultsSummary> buildResults)
      Description copied from interface: TestsManager
      Returns a list of wrapped TestCaseResult and BuildResultSummary for a particular test case and contained within a specific span of build result summaries. For use by e.g. graphs
      Specified by:
      getResultStatistics in interface TestsManager
      Parameters:
      testCase - to find the results for
      buildResults - to contain search to (this list must not be empty)
      Returns:
      list of TestCaseResultStatisticsProvider for each TestCaseResult found for the TestCase
    • 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)
    • getTopBrokenTests

      public List<Pair<TestCase,Long>> getTopBrokenTests(@NotNull @NotNull PlanKey planKey, BuildResultsFilter filter)
      Description copied from interface: TestsManager
      Returns a pai of the top 10 tests that's broken + the count for a given filter period
      Specified by:
      getTopBrokenTests in interface TestsManager
      Returns:
    • 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.
    • removeResultsByPlan

      public int removeResultsByPlan(@NotNull @NotNull Plan plan)
      Description copied from interface: TestsManager
      Remove all TestClassResult objects referenced by ResultsSummary objects identified by planKey
      Specified by:
      removeResultsByPlan in interface TestsManager
      Parameters:
      plan - plan
      Returns:
      number of removed objects
    • removeResultsByPlan

      public int removeResultsByPlan(@NotNull @NotNull PlanKey planKey)
      Description copied from interface: TestsManager
      Remove all TestClassResult objects referenced by ResultsSummary objects identified by planKey
      Specified by:
      removeResultsByPlan in interface TestsManager
      Parameters:
      planKey - planKey
      Returns:
      number of removed objects
    • getTestOrderedMap

      @NotNull public @NotNull TreeMultimap<TestClassResult,TestCaseResult> getTestOrderedMap(@NotNull @NotNull List<TestCaseResult> tests)
      Description copied from interface: TestsManager
      Generate a ListOrderedMap of TestClassResult to list of TestCaseResult based on a given list of TestCaseResults.
      Specified by:
      getTestOrderedMap in interface TestsManager
      Parameters:
      tests - to put in the map
      Returns:
      a ListOrderedMap of TestClassResult to list of TestCaseResult
    • 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
    • repopulateTestResultsInBuildResultsSummary

      public void repopulateTestResultsInBuildResultsSummary(@NotNull @NotNull BuildResultsSummary summary, @NotNull @NotNull List<TestResults> unorderedSuccessfulTests)
      Specified by:
      repopulateTestResultsInBuildResultsSummary in interface TestsManager
    • repopulateTestResultsInBuildResultsSummary

      public void repopulateTestResultsInBuildResultsSummary(@NotNull @NotNull BuildResultsSummary summary, @NotNull @NotNull Supplier<List<TestResults>> unorderedSuccessfulTestsSupplier)
      Specified by:
      repopulateTestResultsInBuildResultsSummary in interface TestsManager