mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
76 lines
2.3 KiB
Java
76 lines
2.3 KiB
Java
package com.avaje.tests.cache;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
|
|
import com.avaje.ebean.BaseTestCase;
|
|
import com.avaje.ebean.Ebean;
|
|
import com.avaje.ebean.SqlUpdate;
|
|
import com.avaje.ebean.cache.ServerCache;
|
|
import com.avaje.ebean.cache.ServerCacheManager;
|
|
import com.avaje.tests.model.basic.Country;
|
|
import com.avaje.tests.model.basic.ResetBasicData;
|
|
|
|
public class TestExternalNotification extends BaseTestCase {
|
|
|
|
@Test
|
|
public void testNotify() {
|
|
|
|
ResetBasicData.reset();
|
|
|
|
Ebean.runCacheWarming(Country.class);
|
|
|
|
ServerCache countryCache = Ebean.getServerCacheManager().getBeanCache(Country.class);
|
|
|
|
Assert.assertTrue(countryCache.size() > 0);
|
|
|
|
// inserts don't remove from bean cache
|
|
Ebean.externalModification("o_country", true, false, false);
|
|
Assert.assertTrue(countryCache.size() > 0);
|
|
|
|
// updates flush cache
|
|
Ebean.externalModification("o_country", false, true, false);
|
|
Assert.assertEquals(0, countryCache.size());
|
|
|
|
Ebean.runCacheWarming(Country.class);
|
|
Assert.assertTrue(countryCache.size() > 0);
|
|
|
|
// deletes flush cache
|
|
Ebean.externalModification("o_country", false, false, true);
|
|
Assert.assertEquals(0, countryCache.size());
|
|
|
|
Ebean.runCacheWarming(Country.class);
|
|
Assert.assertTrue(countryCache.size() > 0);
|
|
|
|
ServerCacheManager serverCacheManager = Ebean.getServerCacheManager();
|
|
serverCacheManager.clearAll();
|
|
Assert.assertEquals(0, countryCache.size());
|
|
|
|
Ebean.runCacheWarming(Country.class);
|
|
Assert.assertTrue(countryCache.size() > 0);
|
|
|
|
Ebean.getServerCacheManager().clear(Country.class);
|
|
Assert.assertEquals(0, countryCache.size());
|
|
|
|
Ebean.runCacheWarming(Country.class);
|
|
int cacheSize = countryCache.size();
|
|
Assert.assertTrue("cacheSize: " + cacheSize, cacheSize > 0);
|
|
|
|
SqlUpdate sqlUpdate = Ebean
|
|
.createSqlUpdate("update o_country set name = :name where code = :code");
|
|
sqlUpdate.setParameter("name", "Aotearoa");
|
|
sqlUpdate.setParameter("code", "NZ");
|
|
|
|
// this should just clear the entire country cache
|
|
int rows = sqlUpdate.execute();
|
|
Assert.assertEquals(1, rows);
|
|
Assert.assertEquals(0, countryCache.size());
|
|
|
|
// set it back...
|
|
sqlUpdate.setParameter("name", "New Zealand");
|
|
sqlUpdate.setParameter("code", "NZ");
|
|
rows = sqlUpdate.execute();
|
|
Assert.assertEquals(1, rows);
|
|
}
|
|
}
|