Make getRuleListeners and getRulesEngineListeners return unmodifiable lists

Resolves #157
pull/200/head
Mahmoud Ben Hassine 6 years ago
parent 032b5aca5d
commit 00f52b388c

@ -28,6 +28,7 @@ import org.jeasy.rules.api.RulesEngine;
import org.jeasy.rules.api.RulesEngineListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
@ -60,12 +61,12 @@ abstract class AbstractRuleEngine implements RulesEngine {
@Override
public List<RuleListener> getRuleListeners() {
return ruleListeners;
return Collections.unmodifiableList(ruleListeners);
}
@Override
public List<RulesEngineListener> getRulesEngineListeners() {
return rulesEngineListeners;
return Collections.unmodifiableList(rulesEngineListeners);
}
public void registerRuleListener(RuleListener ruleListener) {

@ -40,12 +40,17 @@ import org.jeasy.rules.api.RuleListener;
import org.jeasy.rules.api.RulesEngineListener;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.mockito.InOrder;
import org.mockito.Mock;
public class DefaultRulesEngineTest extends AbstractTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Mock
private RuleListener ruleListener;
@ -225,6 +230,21 @@ public class DefaultRulesEngineTest extends AbstractTest {
assertThat(ruleListeners).contains(ruleListener);
}
@Test
public void getRuleListenersShouldReturnAnUnmodifiableList() {
// Given
expectedException.expect(UnsupportedOperationException.class);
DefaultRulesEngine rulesEngine = new DefaultRulesEngine();
rulesEngine.registerRuleListener(ruleListener);
// When
List<RuleListener> ruleListeners = rulesEngine.getRuleListeners();
ruleListeners.clear();
// Then
// expected exception
}
@Test
public void testGetRulesEngineListeners() throws Exception {
// Given
@ -238,6 +258,21 @@ public class DefaultRulesEngineTest extends AbstractTest {
assertThat(rulesEngineListeners).contains(rulesEngineListener);
}
@Test
public void getRulesEngineListenersShouldReturnAnUnmodifiableList() {
// Given
expectedException.expect(UnsupportedOperationException.class);
DefaultRulesEngine rulesEngine = new DefaultRulesEngine();
rulesEngine.registerRulesEngineListener(rulesEngineListener);
// When
List<RulesEngineListener> rulesEngineListeners = rulesEngine.getRulesEngineListeners();
rulesEngineListeners.clear();
// Then
// excepted exception
}
@After
public void clearRules() {
rules.clear();

Loading…
Cancel
Save