m_deploymentVersionRepository = new DeploymentVersionRepositoryImpl(m_mockChangeNotifier, repoConfig);
TestUtils.configureObject(m_deploymentVersionRepository, BundleContext.class, m_mockBundleContext);
// Add several bundles, but not enough to get any deployment version purged...
DeploymentVersionObject target1_v1 = createBasicDeploymentVersionObject("target1", "1", new String[] { "artifact1", "artifact2" });
DeploymentVersionObject target1_v2 = createBasicDeploymentVersionObject("target1", "2", new String[] { "artifact1", "artifact2" });
DeploymentVersionObject target1_v3 = createBasicDeploymentVersionObject("target1", "3", new String[] { "artifact1", "artifact2" });
DeploymentVersionObject target2_v1 = createBasicDeploymentVersionObject("target2", "1", new String[] { "artifact3", "artifact4" });
DeploymentVersionObject target2_v2 = createBasicDeploymentVersionObject("target2", "2", new String[] { "artifact3", "artifact5" });
List<DeploymentVersionObject> repo = m_deploymentVersionRepository.get();
// All created deployment versions should be present...
assertEquals(repo.size(), 5);
assertTrue(repo.contains(target1_v1));
assertTrue(repo.contains(target1_v2));
assertTrue(repo.contains(target1_v3));
assertTrue(repo.contains(target2_v1));
assertTrue(repo.contains(target2_v2));
// Add a new deployment version, which should cause the oldest (= version 1) of target1 to be purged...
DeploymentVersionObject target1_v4 = createBasicDeploymentVersionObject("target1", "4", new String[] { "artifact1", "artifact2" });
repo = m_deploymentVersionRepository.get();
// Still 5 deployment versions, without version 1 of target1...
assertEquals(repo.size(), 5);
assertFalse(repo.contains(target1_v1));
assertTrue(repo.contains(target1_v2));
assertTrue(repo.contains(target1_v3));
assertTrue(repo.contains(target1_v4));
assertTrue(repo.contains(target2_v1));
assertTrue(repo.contains(target2_v2));
// Add yet another deployment version, which should cause the oldest (= version 2) of target1 to be purged...
DeploymentVersionObject target1_v5 = createBasicDeploymentVersionObject("target1", "5", new String[] { "artifact1", "artifact2" });
repo = m_deploymentVersionRepository.get();
// Still 5 deployment versions, without versions 1 & 2 of target1...
assertEquals(repo.size(), 5);
assertFalse(repo.contains(target1_v1));