@After public void after() throws Exception { setFinalField(maxSizeGaCacheField, null, maxSizeGaCacheOrig); setFinalField(maxSizeGaVersionsCacheField, null, maxSizeGaVersionsCacheOrig); }
@Test public void storingNewProjectsCausesOldProjectEvictionFromKieModuleRepoTest() throws Exception { // setup setFinalField(maxSizeGaCacheField, null, 3); setFinalField(maxSizeGaVersionsCacheField, null, 2); // to test oldKieModules caching final ReleaseIdImpl [] releaseIds = new ReleaseIdImpl[7]; for( int i = 0; i < releaseIds.length; ++i ) { final String artifactId = Character.toString((char)('A'+i)); releaseIds[i] = new ReleaseIdImpl("org", artifactId, "1.0"); } // store for( int i = 0; i < releaseIds.length; ++i ) { final InternalKieModule kieModule = mock(InternalKieModule.class); when(kieModule.getReleaseId()).thenReturn(releaseIds[i]); when(kieModule.getCreationTimestamp()).thenReturn(10l); kieModuleRepo.store(kieModule); kieModuleRepo.store(kieModule); // store module 2 times to trigger storage to oldKieModules } final int numKieModules = countKieModules(kieModuleRepo.kieModules); assertEquals( "KieModuleRepo cache should not grow past " + KieModuleRepo.MAX_SIZE_GA_CACHE + ": ", KieModuleRepo.MAX_SIZE_GA_CACHE, numKieModules ); final int oldKieModulesSize = kieModuleRepo.oldKieModules.size(); final int max = KieModuleRepo.MAX_SIZE_GA_CACHE * KieModuleRepo.MAX_SIZE_GA_VERSIONS_CACHE; assertTrue( "KieModuleRepot old KieModules map is not limited in it's growth: " + oldKieModulesSize + " > " + max, oldKieModulesSize <= max ); }
@Test public void testOldKieModulesLRUCache() throws Exception { setFinalField(maxSizeGaCacheField, null, 2); setFinalField(maxSizeGaVersionsCacheField, null, 4);
@Test public void storingNewProjectVersionsCausesOldVersionEvictionFromKieModuleRepoTest() throws Exception { setFinalField(maxSizeGaCacheField, null, 2); // to test oldKieModules caching setFinalField(maxSizeGaVersionsCacheField, null, 3);