package org.epics.archiverappliance.mgmt; import static org.junit.Assert.assertTrue; import java.io.File; import java.io.InputStream; import java.util.HashMap; import org.epics.archiverappliance.config.ConfigServiceForTests; import org.epics.archiverappliance.config.DefaultConfigService; import org.epics.archiverappliance.mgmt.policy.ExecutePolicy; import org.epics.archiverappliance.mgmt.policy.PolicyConfig; import org.junit.After; import org.junit.Before; import org.junit.Test; public class PolicyExecutionTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testSimplePolicyExecution() throws Exception { DefaultConfigService configService = new ConfigServiceForTests(new File("./src/sitespecific/tests/classpathfiles")); try(InputStream is = configService.getPolicyText()) { HashMap<String, Object> pvInfo = new HashMap<String, Object>(); pvInfo.put("eventRate", new Float(1.0)); pvInfo.put("storageRate", new Float(1.0)); pvInfo.put("RTYP", "ai"); try(ExecutePolicy executePolicy = new ExecutePolicy(configService)) { PolicyConfig policyConfig = executePolicy.computePolicyForPV("test", pvInfo); assertTrue("policyConfig is null", policyConfig != null); assertTrue("dataStores is null", policyConfig.getDataStores() != null && policyConfig.getDataStores().length > 1); } } } @Test public void testForLeaks() throws Exception { DefaultConfigService configService = new ConfigServiceForTests(new File("./src/sitespecific/tests/classpathfiles")); for(int i = 0; i < 10000; i++) { try(InputStream is = configService.getPolicyText()) { HashMap<String, Object> pvInfo = new HashMap<String, Object>(); pvInfo.put("eventRate", new Float(1.0)); pvInfo.put("storageRate", new Float(1.0)); pvInfo.put("RTYP", "ai"); try(ExecutePolicy executePolicy = new ExecutePolicy(configService)) { PolicyConfig policyConfig = executePolicy.computePolicyForPV("test" + i, pvInfo); assertTrue("policyConfig is null", policyConfig != null); assertTrue("dataStores is null", policyConfig.getDataStores() != null && policyConfig.getDataStores().length > 1); } } } } }