package com.redhat.lightblue.migrator.facade; import java.util.Properties; import org.junit.Assert; import org.junit.Test; import com.redhat.lightblue.migrator.facade.ServiceFacade.FacadeOperation; public class TimeoutConfigurationTest { String TIMEOUT_CONFIG_PREFIX = TimeoutConfiguration.CONFIG_PREFIX+TimeoutConfiguration.Type.timeout+"."; String SLOWWARNING_CONFIG_PREFIX = TimeoutConfiguration.CONFIG_PREFIX+TimeoutConfiguration.Type.slowwarning+"."; @Test public void testDefault() { TimeoutConfiguration t = new TimeoutConfiguration(1000, "FooService", new Properties()); Assert.assertEquals(1000, t.getTimeoutMS("bar", FacadeOperation.READ)); Assert.assertEquals(1000, t.getTimeoutMS("bar", FacadeOperation.WRITE)); } @Test public void testMethod() { Properties p = new Properties(); p.setProperty(TIMEOUT_CONFIG_PREFIX + "FooService.fooBar", "5000"); p.setProperty(TIMEOUT_CONFIG_PREFIX + "BarService.fooBar", "10000"); TimeoutConfiguration t = new TimeoutConfiguration(2000, "FooService", p); // default Assert.assertEquals(2000, t.getTimeoutMS("barFoo", FacadeOperation.READ)); Assert.assertEquals(2000, t.getTimeoutMS("barFoo", FacadeOperation.WRITE)); // method specific Assert.assertEquals(5000, t.getTimeoutMS("fooBar", FacadeOperation.READ)); Assert.assertEquals(5000, t.getTimeoutMS("fooBar", FacadeOperation.WRITE)); } @Test public void testOperation() { Properties p = new Properties(); p.setProperty(TIMEOUT_CONFIG_PREFIX + "FooService.WRITE", "5000"); p.setProperty(TIMEOUT_CONFIG_PREFIX + "FooService.READ", "2000"); p.setProperty(TIMEOUT_CONFIG_PREFIX + "FooService.fooBar", "10000"); TimeoutConfiguration t = new TimeoutConfiguration(2000, "FooService", p); Assert.assertEquals(2000, t.getTimeoutMS("foo", FacadeOperation.READ)); Assert.assertEquals(5000, t.getTimeoutMS("bar", FacadeOperation.WRITE)); // explicit configuration takes precedence Assert.assertEquals(10000, t.getTimeoutMS("fooBar", FacadeOperation.WRITE)); Assert.assertEquals(10000, t.getTimeoutMS("fooBar", FacadeOperation.READ)); } @Test public void testSlowWarning() { Properties p = new Properties(); p.setProperty(TIMEOUT_CONFIG_PREFIX + "FooService.WRITE", "5001"); p.setProperty(TIMEOUT_CONFIG_PREFIX + "FooService.READ", "2001"); p.setProperty(TIMEOUT_CONFIG_PREFIX + "FooService.fooBar", "10001"); p.setProperty(SLOWWARNING_CONFIG_PREFIX + "FooService.WRITE", "5000"); p.setProperty(SLOWWARNING_CONFIG_PREFIX + "FooService.READ", "2000"); p.setProperty(SLOWWARNING_CONFIG_PREFIX + "FooService.fooBar", "10000"); TimeoutConfiguration t = new TimeoutConfiguration(2000, "FooService", p); Assert.assertEquals(2000, t.getSlowWarningMS("foo", FacadeOperation.READ)); Assert.assertEquals(5000, t.getSlowWarningMS("bar", FacadeOperation.WRITE)); // explicit configuration takes precedence Assert.assertEquals(10000, t.getSlowWarningMS("fooBar", FacadeOperation.WRITE)); Assert.assertEquals(10000, t.getSlowWarningMS("fooBar", FacadeOperation.READ)); Assert.assertEquals(10001, t.getTimeoutMS("fooBar", FacadeOperation.READ)); t = new TimeoutConfiguration(2000, "BarService", p); Assert.assertEquals(2000, t.getSlowWarningMS("foo", FacadeOperation.READ)); Assert.assertEquals(2000, t.getSlowWarningMS("bar", FacadeOperation.WRITE)); Assert.assertEquals(2000, t.getSlowWarningMS("fooBar", FacadeOperation.WRITE)); Assert.assertEquals(2000, t.getSlowWarningMS("fooBar", FacadeOperation.READ)); Assert.assertEquals(2000, t.getTimeoutMS("fooBar", FacadeOperation.READ)); } }