/******************************************************************* * Copyright (c) 2006-2013, Cloudsmith Inc. * The code, documentation and other materials contained herein * are the sole and exclusive property of Cloudsmith Inc. and may * not be disclosed, used, modified, copied or distributed without * prior written consent or license from Cloudsmith Inc. ******************************************************************/ package org.eclipse.buckminster.pde.test; import java.util.Iterator; import java.util.Set; import org.eclipse.buckminster.core.reader.P2ReaderType; import org.eclipse.core.resources.IFolder; import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.equinox.p2.query.IQueryResult; import org.eclipse.equinox.p2.query.QueryUtil; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; /** * @author Dennis Huebner * */ public class CategoryActionTest extends CommonPdeProjectTest { private static final String COMMON_PROJECT_TEST_FEATURE = "common.project.test.feature"; public void testHiddenCategory() throws Exception { cleanBuild(); runBuildFeatureAction("site.p2"); IFolder buildFeatureOutput = getBuildFeatureOutputFolder(); IFolder p2repo = buildFeatureOutput.getFolder("site.p2"); assertNotNull("site.p2 folder was not created", p2repo); IMetadataRepository metadataRepository = P2ReaderType.getMetadataRepository(p2repo.getLocationURI(), monitor()); // Check that the p2 repository contains our feature String iuID = COMMON_PROJECT_TEST_FEATURE + ".feature.group"; IQueryResult<IInstallableUnit> queryResult = metadataRepository.query(QueryUtil.createIUQuery(iuID), monitor()); Iterator<IInstallableUnit> iterator = queryResult.iterator(); assertTrue(iuID + " not found in the given p2 repository", iterator.hasNext()); IInstallableUnit hiddenFeature = iterator.next(); assertFalse("Only one feature occurence is expected.", iterator.hasNext()); // Iterate over all categories assert that our feature is not referenced for (IInstallableUnit iu : metadataRepository.query(QueryUtil.createIUCategoryQuery(), monitor()).toSet()) { Set<IInstallableUnit> categoryIUs = metadataRepository.query(QueryUtil.createIUCategoryMemberQuery(iu), monitor()).toSet(); assertFalse("Found hidden feature in category '" + iu.getId() + "'", categoryIUs.contains(hiddenFeature)); } } }