package org.jooby.internal.ehcache; import static com.typesafe.config.ConfigValueFactory.fromAnyRef; import static org.junit.Assert.assertEquals; import java.util.List; import net.sf.ehcache.config.Configuration; import net.sf.ehcache.config.Configuration.Monitoring; import net.sf.ehcache.config.DiskStoreConfiguration; import net.sf.ehcache.config.FactoryConfiguration; import net.sf.ehcache.config.SizeOfPolicyConfiguration; import net.sf.ehcache.config.SizeOfPolicyConfiguration.MaxDepthExceededBehavior; import net.sf.ehcache.config.TerracottaClientConfiguration; import org.jooby.internal.ehcache.ConfigurationBuilder; import org.junit.Test; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; public class ConfigurationBuilderTest { @Test public void defaultTransactionTimeoutInSeconds() { Config config = ConfigFactory.empty() .withValue("defaultTransactionTimeoutInSeconds", fromAnyRef(4)); Configuration eh = new ConfigurationBuilder().build(config); assertEquals(4, eh.getDefaultTransactionTimeoutInSeconds()); } @Test public void defaultTransactionTimeout() { Config config = ConfigFactory.empty() .withValue("defaultTransactionTimeout", fromAnyRef("4s")); Configuration eh = new ConfigurationBuilder().build(config); assertEquals(4, eh.getDefaultTransactionTimeoutInSeconds()); } @Test public void dynamicConfig() { Config config = ConfigFactory.empty() .withValue("dynamicConfig", fromAnyRef(true)); Configuration eh = new ConfigurationBuilder().build(config); assertEquals(true, eh.getDynamicConfig()); } @Test public void maxBytesLocalDisk() { Config config = ConfigFactory.empty() .withValue("maxBytesLocalDisk", fromAnyRef("1k")); Configuration eh = new ConfigurationBuilder().build(config); assertEquals(1024, eh.getMaxBytesLocalDisk()); } @Test public void maxBytesLocalHeap() { Config config = ConfigFactory.empty() .withValue("maxBytesLocalHeap", fromAnyRef("1k")); Configuration eh = new ConfigurationBuilder().build(config); assertEquals(1024, eh.getMaxBytesLocalHeap()); } @Test public void maxBytesLocalOffHeap() { Config config = ConfigFactory.empty() .withValue("maxBytesLocalOffHeap", fromAnyRef("1k")); Configuration eh = new ConfigurationBuilder().build(config); assertEquals(1024, eh.getMaxBytesLocalOffHeap()); } @Test public void monitoring() { Config config = ConfigFactory.empty() .withValue("monitoring", fromAnyRef("off")); Configuration eh = new ConfigurationBuilder().build(config); assertEquals(Monitoring.OFF, eh.getMonitoring()); } @Test public void name() { Config config = ConfigFactory.empty() .withValue("name", fromAnyRef("Name")); Configuration eh = new ConfigurationBuilder().build(config); assertEquals("Name", eh.getName()); } @SuppressWarnings("rawtypes") @Test public void cacheManagerEventListenerFactory() { Config config = ConfigFactory.empty() .withValue("cacheManagerEventListenerFactory.class", fromAnyRef("MyEventListener")); Configuration eh = new ConfigurationBuilder().build(config); FactoryConfiguration factory = eh.getCacheManagerEventListenerFactoryConfiguration(); assertEquals("MyEventListener", factory.getFullyQualifiedClassPath()); } @SuppressWarnings("rawtypes") @Test public void cacheManagerPeerListenerFactory() { Config config = ConfigFactory.empty() .withValue("cacheManagerPeerListenerFactory.class", fromAnyRef("PeerListener")); Configuration eh = new ConfigurationBuilder().build(config); List<FactoryConfiguration> factory = eh.getCacheManagerPeerListenerFactoryConfigurations(); assertEquals("PeerListener", factory.get(0).getFullyQualifiedClassPath()); } @SuppressWarnings("rawtypes") @Test public void cacheManagerPeerListenerFactories() { Config config = ConfigFactory.empty() .withValue("cacheManagerPeerListenerFactory.p1.class", fromAnyRef("PeerListener1")); Configuration eh = new ConfigurationBuilder().build(config); List<FactoryConfiguration> factory = eh.getCacheManagerPeerListenerFactoryConfigurations(); assertEquals("PeerListener1", factory.get(0).getFullyQualifiedClassPath()); } @SuppressWarnings("rawtypes") @Test public void cacheManagerPeerProviderFactory() { Config config = ConfigFactory.empty() .withValue("cacheManagerPeerProviderFactory.class", fromAnyRef("PeerProvider")); Configuration eh = new ConfigurationBuilder().build(config); List<FactoryConfiguration> factory = eh.getCacheManagerPeerProviderFactoryConfiguration(); assertEquals("PeerProvider", factory.get(0).getFullyQualifiedClassPath()); } @SuppressWarnings("rawtypes") @Test public void cacheManagerPeerProviderFactories() { Config config = ConfigFactory.empty() .withValue("cacheManagerPeerProviderFactory.pp1.class", fromAnyRef("PeerProvider")); Configuration eh = new ConfigurationBuilder().build(config); List<FactoryConfiguration> factory = eh.getCacheManagerPeerProviderFactoryConfiguration(); assertEquals("PeerProvider", factory.get(0).getFullyQualifiedClassPath()); } @Test public void diskStore() { Config config = ConfigFactory.empty() .withValue("diskStore.path", fromAnyRef("target")); Configuration eh = new ConfigurationBuilder().build(config); DiskStoreConfiguration diskStore = eh.getDiskStoreConfiguration(); assertEquals("target", diskStore.getPath()); } @Test public void sizeOfPolicy() { Config config = ConfigFactory.empty() .withValue("sizeOfPolicy.maxDepth", fromAnyRef(100)) .withValue("sizeOfPolicy.maxDepthExceededBehavior", fromAnyRef("abort")); Configuration eh = new ConfigurationBuilder().build(config); SizeOfPolicyConfiguration size = eh.getSizeOfPolicyConfiguration(); assertEquals(100, size.getMaxDepth()); assertEquals(MaxDepthExceededBehavior.ABORT, size.getMaxDepthExceededBehavior()); } @Test public void terracottaConfig() { Config config = ConfigFactory.empty() .withValue("terracottaConfig.rejoin", fromAnyRef(true)) .withValue("terracottaConfig.url", fromAnyRef("http://localhost:6897")) .withValue("terracottaConfig.wanEnabledTSA", fromAnyRef(true)); Configuration eh = new ConfigurationBuilder().build(config); TerracottaClientConfiguration terracota = eh.getTerracottaConfiguration(); assertEquals(true, terracota.isRejoin()); assertEquals("http://localhost:6897", terracota.getUrl()); assertEquals(true, terracota.isWanEnabledTSA()); } @SuppressWarnings("rawtypes") @Test public void transactionManagerLookup() { Config config = ConfigFactory.empty() .withValue("transactionManagerLookup.class", fromAnyRef("TrxML")); Configuration eh = new ConfigurationBuilder().build(config); FactoryConfiguration terracota = eh.getTransactionManagerLookupConfiguration(); assertEquals("TrxML", terracota.getFullyQualifiedClassPath()); } }