mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
74 lines
2.1 KiB
Java
74 lines
2.1 KiB
Java
package org.tests.basic;
|
|
|
|
import io.ebean.BaseTestCase;
|
|
import io.ebean.Ebean;
|
|
import io.ebean.Query;
|
|
import io.ebean.cache.ServerCache;
|
|
import io.ebean.cache.ServerCacheManager;
|
|
import io.ebeaninternal.api.SpiEbeanServer;
|
|
import io.ebeaninternal.server.core.CacheOptions;
|
|
import io.ebeaninternal.server.deploy.BeanDescriptor;
|
|
import org.tests.model.basic.Country;
|
|
import org.tests.model.basic.ResetBasicData;
|
|
import org.junit.Test;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
import static org.junit.Assert.*;
|
|
|
|
public class TestQueryWithCache extends BaseTestCase {
|
|
|
|
@Test
|
|
public void testCountryDeploy() {
|
|
|
|
ResetBasicData.reset();
|
|
|
|
SpiEbeanServer server = (SpiEbeanServer) Ebean.getServer(null);
|
|
BeanDescriptor<Country> beanDescriptor = server.getBeanDescriptor(Country.class);
|
|
CacheOptions cacheOptions = beanDescriptor.getCacheOptions();
|
|
|
|
assertNotNull(cacheOptions);
|
|
assertTrue(cacheOptions.isReadOnly());
|
|
assertTrue(beanDescriptor.isCacheSharableBeans());
|
|
|
|
ServerCacheManager serverCacheManager = server.getServerCacheManager();
|
|
serverCacheManager.clear(Country.class);
|
|
|
|
ServerCache beanCache = serverCacheManager.getBeanCache(Country.class);
|
|
assertEquals(0, beanCache.size());
|
|
|
|
Country nz1 = Ebean.getReference(Country.class, "NZ");
|
|
assertEquals(0, beanCache.size());
|
|
|
|
// has the effect of loading the cache via lazy loading
|
|
nz1.getName();
|
|
assertEquals(1, beanCache.size());
|
|
|
|
Country nz2 = Ebean.getReference(Country.class, "NZ");
|
|
Country nz2b = Ebean.getReference(Country.class, "NZ");
|
|
|
|
Country nz3 = Ebean.find(Country.class, "NZ");
|
|
|
|
Country nz4 = Ebean.find(Country.class).setId("NZ").setAutoTune(false).setUseCache(false)
|
|
.findOne();
|
|
|
|
assertTrue(nz2 == nz2b);
|
|
assertTrue(nz2 == nz3);
|
|
assertTrue(nz3 != nz4);
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testSkipCache() {
|
|
|
|
ResetBasicData.reset();
|
|
|
|
Ebean.find(Country.class, "NZ");
|
|
|
|
Query<Country> query = Ebean.find(Country.class).setId("NZ").setUseCache(false);
|
|
query.findOne();
|
|
|
|
assertThat(query.getGeneratedSql()).isNotNull();
|
|
}
|
|
|
|
}
|