@Test(expectedExceptions = { IllegalArgumentException.class }) public void missingRules() throws Exception { when(config.getRuleClasses()).thenReturn(Collections.<Class<?>> emptySet()); when(config.getResultCollector()).thenReturn(resultCollector); Answer<Class<? extends IRuleOutputStorage>> callableAnswer = new Answer<Class<? extends IRuleOutputStorage>>() { @Override public Class<? extends IRuleOutputStorage> answer(InvocationOnMock invocation) throws Throwable { return DefaultRuleOutputStorage.class; } }; doAnswer(callableAnswer).when(config).getStorageClass(); sessionFactory = new SessionFactory<>(config); sessionFactory.makeObject(); }
@Test(expectedExceptions = { NullPointerException.class }) public void nullResultCollector() throws Exception { Set<Class<?>> ruleClasses = new HashSet<>(Arrays.asList(RuleA.class, RuleB.class, RuleC.class)); when(config.getRuleClasses()).thenReturn(ruleClasses); when(config.getResultCollector()).thenReturn(null); Answer<Class<? extends IRuleOutputStorage>> callableAnswer = new Answer<Class<? extends IRuleOutputStorage>>() { @Override public Class<? extends IRuleOutputStorage> answer(InvocationOnMock invocation) throws Throwable { return DefaultRuleOutputStorage.class; } }; doAnswer(callableAnswer).when(config).getStorageClass(); sessionFactory = new SessionFactory<>(config); sessionFactory.makeObject(); }
@Test(expectedExceptions = { IllegalArgumentException.class }) public void nullRules() throws Exception { when(config.getRuleClasses()).thenReturn(null); when(config.getResultCollector()).thenReturn(resultCollector); Answer<Class<? extends IRuleOutputStorage>> callableAnswer = new Answer<Class<? extends IRuleOutputStorage>>() { @Override public Class<? extends IRuleOutputStorage> answer(InvocationOnMock invocation) throws Throwable { return DefaultRuleOutputStorage.class; } }; doAnswer(callableAnswer).when(config).getStorageClass(); sessionFactory = new SessionFactory<>(config); sessionFactory.makeObject(); }
@Test(expectedExceptions = { NullPointerException.class }) public void nullStorage() throws Exception { Set<Class<?>> ruleClasses = new HashSet<>(Arrays.asList(RuleA.class, RuleB.class, RuleC.class)); when(config.getRuleClasses()).thenReturn(ruleClasses); when(config.getResultCollector()).thenReturn(null); Answer<Class<? extends IRuleOutputStorage>> callableAnswer = new Answer<Class<? extends IRuleOutputStorage>>() { @Override public Class<? extends IRuleOutputStorage> answer(InvocationOnMock invocation) throws Throwable { return null; } }; doAnswer(callableAnswer).when(config).getStorageClass(); sessionFactory = new SessionFactory<>(config); sessionFactory.makeObject(); } }
@Test public void test() throws Exception { Set<Class<?>> ruleClasses = new HashSet<>(Arrays.asList(RuleA.class, RuleB.class, RuleC.class)); when(config.getRuleClasses()).thenReturn(ruleClasses); when(config.getResultCollector()).thenReturn(resultCollector); Answer<Class<? extends IRuleOutputStorage>> callableAnswer = new Answer<Class<? extends IRuleOutputStorage>>() { @Override public Class<? extends IRuleOutputStorage> answer(InvocationOnMock invocation) throws Throwable { return DefaultRuleOutputStorage.class; } }; doAnswer(callableAnswer).when(config).getStorageClass(); sessionFactory = new SessionFactory<>(config); Session<String, DefaultSessionResult<String>> session = sessionFactory.makeObject(); session.activate("", Collections.<String, Object> emptyMap()); sessionFactory.passivateObject(session); assertThat(session.getState(), equalTo(State.PASSIVATED)); } }
@Test public void test() throws Exception { Set<Class<?>> ruleClasses = new HashSet<>(Arrays.asList(RuleA.class, RuleB.class, RuleC.class)); when(config.getRuleClasses()).thenReturn(ruleClasses); when(config.getResultCollector()).thenReturn(resultCollector); Answer<Class<? extends IRuleOutputStorage>> callableAnswer = new Answer<Class<? extends IRuleOutputStorage>>() { @Override public Class<? extends IRuleOutputStorage> answer(InvocationOnMock invocation) throws Throwable { return DefaultRuleOutputStorage.class; } }; doAnswer(callableAnswer).when(config).getStorageClass(); sessionFactory = new SessionFactory<>(config); Session<String, DefaultSessionResult<String>> session = sessionFactory.makeObject(); session.activate("", Collections.<String, Object> emptyMap()); sessionFactory.destroyObject(session); assertThat(session.getState(), equalTo(State.DESTROYED)); } }
@Test public void makeValid() throws Exception { Set<Class<?>> ruleClasses = new HashSet<>(Arrays.asList(RuleA.class, RuleB.class, RuleC.class)); when(config.getRuleClasses()).thenReturn(ruleClasses); when(config.getResultCollector()).thenReturn(resultCollector); Answer<Class<? extends IRuleOutputStorage>> callableAnswer = new Answer<Class<? extends IRuleOutputStorage>>() { @Override public Class<? extends IRuleOutputStorage> answer(InvocationOnMock invocation) throws Throwable { return DefaultRuleOutputStorage.class; } }; doAnswer(callableAnswer).when(config).getStorageClass(); sessionFactory = new SessionFactory<>(config); Session<String, DefaultSessionResult<String>> session = sessionFactory.makeObject(); assertThat(session.getState(), equalTo(State.NEW)); assertThat(session.getSessionContext().getRuleSet(), empty()); session.activate("input", Collections.<String, Object> emptyMap()); assertThat(session.getState(), equalTo(State.ACTIVATED)); assertThat(session.getSessionContext().getRuleSet(), containsInAnyOrder(Rules.define(RuleA.class, RuleB.class, RuleC.class).toArray())); }