use of jetbrains.buildServer.server.rest.data.problem.TestFinder in project teamcity-rest by JetBrains.
the class BuildPromotionFinder method getBuildFilter.
@NotNull
private MultiCheckerFilter<SBuild> getBuildFilter(@NotNull final Locator locator) {
final MultiCheckerFilter<SBuild> result = new MultiCheckerFilter<SBuild>();
final String buildNumber = locator.getSingleDimensionValue(NUMBER);
if (buildNumber != null) {
result.add(new FilterConditionChecker<SBuild>() {
public boolean isIncluded(@NotNull final SBuild item) {
return buildNumber.equals(item.getBuildNumber());
}
});
}
final String status = locator.getSingleDimensionValue(STATUS);
if (status != null) {
result.add(new FilterConditionChecker<SBuild>() {
public boolean isIncluded(@NotNull final SBuild item) {
return status.equalsIgnoreCase(item.getStatusDescriptor().getStatus().getText());
}
});
}
final Boolean pinned = locator.getSingleDimensionValueAsBoolean(PINNED);
if (pinned != null) {
result.add(new FilterConditionChecker<SBuild>() {
public boolean isIncluded(@NotNull final SBuild item) {
return FilterUtil.isIncludedByBooleanFilter(pinned, item.isPinned());
}
});
}
final Boolean hanging = locator.getSingleDimensionValueAsBoolean(HANGING);
if (hanging != null) {
result.add(new FilterConditionChecker<SBuild>() {
public boolean isIncluded(@NotNull final SBuild item) {
if (item.isFinished())
return !hanging;
return FilterUtil.isIncludedByBooleanFilter(hanging, ((SRunningBuild) item).isProbablyHanging());
}
});
}
if (locator.isUnused(AGENT_NAME)) {
final String agentName = locator.getSingleDimensionValue(AGENT_NAME);
if (agentName != null) {
final ValueCondition agentNameCondition = ParameterCondition.createValueCondition(agentName);
result.add(item -> agentNameCondition.matches(item.getAgentName()));
}
}
if (locator.isUnused(AGENT_TYPE_ID)) {
final Long agentTypeId = locator.getSingleDimensionValueAsLong(AGENT_TYPE_ID);
if (agentTypeId != null) {
result.add(item -> agentTypeId.intValue() == item.getAgent().getAgentTypeId());
}
}
// see also settings cut off date in main filter
final Date sinceDate = DataProvider.parseDate(locator.getSingleDimensionValue(SINCE_DATE));
if (sinceDate != null) {
result.add(new FilterConditionChecker<SBuild>() {
public boolean isIncluded(@NotNull final SBuild item) {
return sinceDate.before(item.getStartDate());
}
});
}
final Date untilDate = DataProvider.parseDate(locator.getSingleDimensionValue(UNTIL_DATE));
if (untilDate != null) {
result.add(new FilterConditionChecker<SBuild>() {
public boolean isIncluded(@NotNull final SBuild item) {
return !(untilDate.before(item.getStartDate()));
}
});
}
final List<String> statisticValues = locator.getDimensionValue(STATISTIC_VALUE);
if (!statisticValues.isEmpty()) {
final Matcher<ParametersProvider> parameterCondition = ParameterCondition.create(statisticValues);
result.add(new FilterConditionChecker<SBuild>() {
public boolean isIncluded(@NotNull final SBuild item) {
return parameterCondition.matches(new AbstractMapParametersProvider(Build.getBuildStatisticsValues(item)));
}
});
}
if (locator.isUnused(TEST_OCCURRENCE)) {
final String testOccurrence = locator.getSingleDimensionValue(TEST_OCCURRENCE);
if (testOccurrence != null) {
TestOccurrenceFinder testOccurrenceFinder = myServiceLocator.getSingletonService(TestOccurrenceFinder.class);
Set<Long> buildPromotionIds = testOccurrenceFinder.getItems(testOccurrence).myEntries.stream().map(sTestRun -> sTestRun.getBuild().getBuildPromotion().getId()).collect(Collectors.toSet());
result.add(new FilterConditionChecker<SBuild>() {
public boolean isIncluded(@NotNull final SBuild item) {
return buildPromotionIds.contains(item.getBuildPromotion().getId());
}
});
}
}
final String test = locator.getSingleDimensionValue(TEST);
if (test != null) {
TestFinder testFinder = myServiceLocator.getSingletonService(TestFinder.class);
result.add(new FilterConditionChecker<SBuild>() {
public boolean isIncluded(@NotNull final SBuild item) {
String locator = new Locator(test).setDimension(TestFinder.BUILD, getLocator(item.getBuildPromotion())).setDimension(PagerData.COUNT, "1").getStringRepresentation();
return !testFinder.getItems(locator).myEntries.isEmpty();
}
});
}
return result;
}
use of jetbrains.buildServer.server.rest.data.problem.TestFinder in project teamcity-rest by JetBrains.
the class BaseTestScopesCollectorTest method setUp.
@BeforeMethod(alwaysRun = true)
@Override
protected void setUp() throws Exception {
super.setUp();
myTimeCondition = new TimeCondition(myFixture);
myFixture.addService(myTimeCondition);
myPermissionChecker = new PermissionChecker(myServer.getSecurityContext(), myProjectManager);
myFixture.addService(myPermissionChecker);
myProjectFinder = new ProjectFinder(myProjectManager, myPermissionChecker, myServer);
myFixture.addService(myProjectFinder);
myGroupFinder = new UserGroupFinder(getUserGroupManager());
myFixture.addService(myGroupFinder);
myUserFinder = new UserFinder(getUserModelEx(), myGroupFinder, myProjectFinder, myTimeCondition, myFixture.getRolesManager(), myPermissionChecker, myServer.getSecurityContext(), myServer);
myAgentFinder = new AgentFinder(myAgentManager, myFixture);
myFixture.addService(myAgentFinder);
myBuildTypeFinder = new BuildTypeFinder(myProjectManager, myProjectFinder, myAgentFinder, myPermissionChecker, myFixture);
myBranchFinder = new BranchFinder(myBuildTypeFinder, myFixture);
final VcsRootIdentifiersManagerImpl vcsRootIdentifiersManager = myFixture.getSingletonService(VcsRootIdentifiersManagerImpl.class);
myVcsRootFinder = new VcsRootFinder(myFixture.getVcsManager(), myProjectFinder, myBuildTypeFinder, myProjectManager, vcsRootIdentifiersManager, myPermissionChecker);
myFixture.addService(myVcsRootFinder);
myBuildPromotionFinder = new BuildPromotionFinder(myFixture.getBuildPromotionManager(), myFixture.getBuildQueue(), myServer, myVcsRootFinder, myProjectFinder, myBuildTypeFinder, myUserFinder, myAgentFinder, myBranchFinder, myTimeCondition, myPermissionChecker, null, myFixture);
myFixture.addService(myBuildPromotionFinder);
myBuildFinder = new BuildFinder(myFixture, myBuildTypeFinder, myProjectFinder, myUserFinder, myBuildPromotionFinder, myAgentFinder);
final TestName2Index testName2Index = myFixture.getSingletonService(TestName2Index.class);
final ProblemMutingService problemMutingService = myFixture.getSingletonService(ProblemMutingService.class);
myTestFinder = new TestFinder(myProjectFinder, myBuildTypeFinder, myBuildPromotionFinder, myFixture.getTestManager(), testName2Index, myFixture.getCurrentProblemsManager(), problemMutingService);
myFixture.addService(myTestFinder);
TestScopeFilterProducer testScopesFilterProducer = new TestScopeFilterProducer(myBuildTypeFinder);
final CurrentProblemsManager currentProblemsManager = myServer.getSingletonService(CurrentProblemsManager.class);
myTestOccurrenceFinder = new TestOccurrenceFinder(myServer.getSecurityContext(), myTestFinder, myBuildFinder, myBuildTypeFinder, myProjectFinder, myFixture.getTestsHistory(), currentProblemsManager, myBranchFinder, testScopesFilterProducer);
myFixture.addService(myTestOccurrenceFinder);
myTestScopesCollector = new TestScopesCollector(myTestOccurrenceFinder, testScopesFilterProducer);
}
use of jetbrains.buildServer.server.rest.data.problem.TestFinder in project teamcity-rest by JetBrains.
the class BaseFinderTest method initFinders.
protected void initFinders() {
myVcsManager = myFixture.getVcsManager();
myFixture.addService(myVcsManager);
myFixture.addService(myProjectManager);
myPermissionChecker = new PermissionChecker(myServer.getSecurityContext(), myProjectManager);
myFixture.addService(myPermissionChecker);
myTimeCondition = new TimeCondition(myFixture);
myFixture.addService(myTimeCondition);
myProjectFinder = new ProjectFinder(myProjectManager, myPermissionChecker, myServer);
myFixture.addService(myProjectFinder);
myAgentFinder = new AgentFinder(myAgentManager, myFixture);
myFixture.addService(myAgentFinder);
myAgentPoolFinder = new AgentPoolFinder(myFixture.getAgentPoolManager(), myAgentFinder, myFixture);
myFixture.addService(myAgentPoolFinder);
myBuildTypeFinder = new BuildTypeFinder(myProjectManager, myProjectFinder, myAgentFinder, myPermissionChecker, myServer);
myFixture.addService(myBuildTypeFinder);
final VcsRootIdentifiersManagerImpl vcsRootIdentifiersManager = myFixture.getSingletonService(VcsRootIdentifiersManagerImpl.class);
myVcsRootFinder = new VcsRootFinder(myVcsManager, myProjectFinder, myBuildTypeFinder, myProjectManager, vcsRootIdentifiersManager, myPermissionChecker);
myFixture.addService(myVcsRootFinder);
myVcsRootInstanceFinder = new VcsRootInstanceFinder(myVcsRootFinder, myVcsManager, myProjectFinder, myBuildTypeFinder, myProjectManager, myFixture.getSingletonService(VersionedSettingsManager.class), myTimeCondition, myPermissionChecker, myServer);
myFixture.addService(myVcsRootInstanceFinder);
myGroupFinder = new UserGroupFinder(getUserGroupManager());
myFixture.addService(myGroupFinder);
myUserFinder = new UserFinder(getUserModelEx(), myGroupFinder, myProjectFinder, myTimeCondition, myFixture.getRolesManager(), myPermissionChecker, myServer.getSecurityContext(), myServer);
myFixture.addService(myUserFinder);
myBranchFinder = new BranchFinder(myBuildTypeFinder, myFixture);
myBuildPromotionFinder = new BuildPromotionFinder(myFixture.getBuildPromotionManager(), myFixture.getBuildQueue(), myServer, myVcsRootFinder, myProjectFinder, myBuildTypeFinder, myUserFinder, myAgentFinder, myBranchFinder, myTimeCondition, myPermissionChecker, null, myFixture);
myFixture.addService(myBuildPromotionFinder);
myBuildFinder = new BuildFinder(myServer, myBuildTypeFinder, myProjectFinder, myUserFinder, myBuildPromotionFinder, myAgentFinder);
myFixture.addService(myBuildFinder);
final TestName2Index testName2Index = myFixture.getSingletonService(TestName2Index.class);
final ProblemMutingService problemMutingService = myFixture.getSingletonService(ProblemMutingService.class);
myTestFinder = new TestFinder(myProjectFinder, myBuildTypeFinder, myBuildPromotionFinder, myFixture.getTestManager(), testName2Index, myFixture.getCurrentProblemsManager(), problemMutingService);
myFixture.addService(myTestFinder);
TestScopeFilterProducer filterProducer = new TestScopeFilterProducer(myBuildTypeFinder);
final CurrentProblemsManager currentProblemsManager = myServer.getSingletonService(CurrentProblemsManager.class);
myTestOccurrenceFinder = new TestOccurrenceFinder(myServer.getSecurityContext(), myTestFinder, myBuildFinder, myBuildTypeFinder, myProjectFinder, myFixture.getTestsHistory(), currentProblemsManager, myBranchFinder, filterProducer);
myFixture.addService(myTestOccurrenceFinder);
final BuildProblemManager buildProblemManager = myFixture.getSingletonService(BuildProblemManager.class);
myProblemFinder = new ProblemFinder(myProjectFinder, myBuildPromotionFinder, buildProblemManager, myProjectManager, myFixture, problemMutingService);
myFixture.addService(myProblemFinder);
myProblemOccurrenceFinder = new ProblemOccurrenceFinder(myProjectFinder, myBuildFinder, myProblemFinder, buildProblemManager, myProjectManager, myFixture);
myFixture.addService(myProblemOccurrenceFinder);
final ResponsibilityFacadeEx responsibilityFacade = myFixture.getResponsibilityFacadeEx();
myInvestigationFinder = new InvestigationFinder(myProjectFinder, myBuildTypeFinder, myProblemFinder, myTestFinder, myUserFinder, responsibilityFacade, responsibilityFacade, responsibilityFacade);
myFixture.addService(myInvestigationFinder);
myMuteFinder = new MuteFinder(myProjectFinder, myTimeCondition, myPermissionChecker, problemMutingService, (LowLevelProblemMutingServiceImpl) myFixture.getSingletonService(LowLevelProblemMutingService.class), myFixture);
myFixture.addService(myMuteFinder);
myQueuedBuildFinder = new QueuedBuildFinder(myServer.getQueue(), myProjectFinder, myBuildTypeFinder, myUserFinder, myAgentFinder, myAgentPoolFinder, myFixture.getBuildPromotionManager(), myServer);
myFixture.addService(myQueuedBuildFinder);
myChangeFinder = new ChangeFinder(myProjectFinder, myBuildFinder, myBuildPromotionFinder, myBuildTypeFinder, myVcsRootFinder, myVcsRootInstanceFinder, myUserFinder, myVcsManager, myFixture.getVcsHistory(), myBranchFinder, myFixture, myPermissionChecker);
myFixture.addService(myChangeFinder);
myFixture.addService(new HealthItemFinder(myFixture.getSingletonService(HealthStatusProvider.class), myFixture.getSingletonService(HealthStatusReportLocator.class), myFixture));
}
Aggregations