@Test public void selectorChain() { MessageSelector selector1 = (MessageSelector) context.getBean("selector1"); MessageSelector selector2 = (MessageSelector) context.getBean("selector2"); MessageSelectorChain chain = (MessageSelectorChain) context.getBean("selectorChain"); List<MessageSelector> selectors = this.getSelectors(chain); assertEquals(VotingStrategy.ALL, this.getStrategy(chain)); assertEquals(selector1, selectors.get(0)); assertEquals(selector2, selectors.get(1)); assertTrue(chain.accept(new GenericMessage<>("test"))); assertTrue(this.context.containsBean("pojoSelector")); }
List<MessageSelector> selectorList4 = this.getSelectors(chain4); assertEquals(selector6, selectorList4.get(0)); assertTrue(chain1.accept(new GenericMessage<>("test1"))); assertTrue(chain2.accept(new GenericMessage<>("test2"))); assertTrue(chain3.accept(new GenericMessage<>("test3"))); assertTrue(chain4.accept(new GenericMessage<>("test4")));
@Test public void majorityOrTieStrategyWithOddNumberRejects() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.MAJORITY_OR_TIE); chain.add(new TestSelector(false)); chain.add(new TestSelector(true)); chain.add(new TestSelector(false)); assertFalse(chain.accept(message)); }
@Test public void allStrategyAccepts() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.ALL); chain.add(new TestSelector(true)); chain.add(new TestSelector(true)); chain.add(new TestSelector(true)); assertTrue(chain.accept(message)); }
@Test public void majorityStrategyWithOddNumberRejects() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.MAJORITY); chain.add(new TestSelector(false)); chain.add(new TestSelector(true)); chain.add(new TestSelector(false)); assertFalse(chain.accept(message)); }
@Test public void majorityOrTieStrategyWithOddNumberAccepts() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.MAJORITY_OR_TIE); chain.add(new TestSelector(true)); chain.add(new TestSelector(true)); chain.add(new TestSelector(false)); assertTrue(chain.accept(message)); }
@Test public void allStrategyRejects() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.ALL); chain.add(new TestSelector(true)); chain.add(new TestSelector(false)); chain.add(new TestSelector(true)); assertFalse(chain.accept(message)); }
@Test public void majorityStrategyWithOddNumberAccepts() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.MAJORITY); chain.add(new TestSelector(true)); chain.add(new TestSelector(true)); chain.add(new TestSelector(false)); assertTrue(chain.accept(message)); }
@Test public void anyStrategyRejects() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.ANY); chain.add(new TestSelector(false)); chain.add(new TestSelector(false)); chain.add(new TestSelector(false)); chain.add(new TestSelector(false)); assertFalse(chain.accept(message)); }
@Test public void majorityOrTieStrategyWithEvenNumberRejects() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.MAJORITY_OR_TIE); chain.add(new TestSelector(false)); chain.add(new TestSelector(true)); chain.add(new TestSelector(false)); chain.add(new TestSelector(false)); assertFalse(chain.accept(message)); }
@Test public void majorityStrategyWithEvenNumberAccepts() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.MAJORITY); chain.add(new TestSelector(true)); chain.add(new TestSelector(true)); chain.add(new TestSelector(false)); chain.add(new TestSelector(true)); assertTrue(chain.accept(message)); }
@Test public void anyStrategyAccepts() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.ANY); chain.add(new TestSelector(false)); chain.add(new TestSelector(false)); chain.add(new TestSelector(true)); chain.add(new TestSelector(false)); assertTrue(chain.accept(message)); }
@Test public void majorityOrTieStrategyWithEvenNumberAccepts() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.MAJORITY_OR_TIE); chain.add(new TestSelector(true)); chain.add(new TestSelector(true)); chain.add(new TestSelector(false)); chain.add(new TestSelector(false)); assertTrue(chain.accept(message)); }
@Test public void majorityStrategyWithEvenNumberRejects() { MessageSelectorChain chain = new MessageSelectorChain(); chain.setVotingStrategy(MessageSelectorChain.VotingStrategy.MAJORITY); chain.add(new TestSelector(false)); chain.add(new TestSelector(true)); chain.add(new TestSelector(true)); chain.add(new TestSelector(false)); assertFalse(chain.accept(message)); }