package org.infinispan.xsite; import static org.testng.Assert.assertEquals; import org.infinispan.commons.CacheConfigurationException; import org.infinispan.configuration.cache.BackupConfiguration; import org.infinispan.configuration.cache.BackupConfigurationBuilder; import org.infinispan.configuration.cache.BackupFailurePolicy; import org.infinispan.configuration.cache.Configuration; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.testng.annotations.Test; /** * @author Mircea.Markus@jboss.com * @since 5.2 */ @Test(groups = "functional, xsite", testName = "xsite.XSiteCacheConfigurationTest") public class XSiteCacheConfigurationTest { public void testApi() { ConfigurationBuilder cb = new ConfigurationBuilder(); cb. sites().addBackup() .site("LON") .strategy(BackupConfiguration.BackupStrategy.SYNC) .sites().addBackup() .site("SFO") .sites().addBackup() .site("NYC"); assertEquals(cb.sites().backups().size(), 3); BackupConfigurationBuilder backup0 = cb.sites().backups().get(0); assertEquals(backup0.site(), "LON"); assertEquals(backup0.strategy(), BackupConfiguration.BackupStrategy.SYNC); BackupConfigurationBuilder backup1 = cb.sites().backups().get(1); assertEquals(backup1.site(), "SFO"); assertEquals(backup1.strategy(), BackupConfiguration.BackupStrategy.ASYNC); BackupConfigurationBuilder backup2 = cb.sites().backups().get(2); assertEquals(backup2.site(), "NYC"); assertEquals(backup2.strategy(), BackupConfiguration.BackupStrategy.ASYNC); Configuration b = cb.build(); assertEquals(b.sites().allBackups().size(), 3); BackupConfiguration b0 = b.sites().allBackups().get(0); assertEquals(b0.site(), "LON"); assertEquals(b0.strategy(), BackupConfiguration.BackupStrategy.SYNC); BackupConfiguration b1 = b.sites().allBackups().get(1); assertEquals(b1.site(), "SFO"); assertEquals(b1.strategy(), BackupConfiguration.BackupStrategy.ASYNC); BackupConfigurationBuilder b2 = cb.sites().backups().get(2); assertEquals(b2.site(), "NYC"); assertEquals(b2.strategy(), BackupConfiguration.BackupStrategy.ASYNC); } @Test (expectedExceptions = CacheConfigurationException.class) public void testSameBackupDefinedMultipleTimes() { ConfigurationBuilder cb = new ConfigurationBuilder(); cb. sites().addBackup() .site("LON") .strategy(BackupConfiguration.BackupStrategy.SYNC) .sites().addBackup() .site("LON") .sites().addBackup() .site("NYC"); cb.build(); } @Test(expectedExceptions = CacheConfigurationException.class) public void testBackupSiteNotSpecified() { ConfigurationBuilder cb = new ConfigurationBuilder(); cb. sites().addBackup() .site(); cb.build(); } @Test(expectedExceptions = CacheConfigurationException.class) public void testCustomBackupFailurePolicyClassNotSpecified() { ConfigurationBuilder cb = new ConfigurationBuilder(); cb. sites().addBackup() .site("LON") .backupFailurePolicy(BackupFailurePolicy.CUSTOM) .failurePolicyClass(); cb.build(); } @Test(expectedExceptions = CacheConfigurationException.class) public void testTwoPhaseCommitAsyncBackup() { ConfigurationBuilder cb = new ConfigurationBuilder(); cb. sites().addBackup() .site("LON") .strategy(BackupConfiguration.BackupStrategy.ASYNC) .useTwoPhaseCommit(true); cb.build(); } public void testMultipleCachesWithNoCacheName() { ConfigurationBuilder cb = new ConfigurationBuilder(); cb. sites().addBackup() .site("LON") .strategy(BackupConfiguration.BackupStrategy.SYNC) .sites().addBackup() .site("SFO") .sites().addBackup() .site("NYC"); cb.build(); } }