### Question:
OrBlockMatcher implements BlockMatcher { @Override public boolean match(Block block) { boolean result = false; for (BlockMatcher matcher : this.matchers) { if (matcher.match(block)) { result = true; break; } } return result; } OrBlockMatcher(List<BlockMatcher> matchers);  OrBlockMatcher(BlockMatcher... matchers); @Override boolean match(Block block);  }### Answer:
@Test public void matchWhenUsingVarargConstructor() { OrBlockMatcher matcher = new OrBlockMatcher( new ClassBlockMatcher(GroupBlock.class), new ClassBlockMatcher(FormatBlock.class)); Assert.assertTrue(matcher.match(new GroupBlock())); Assert.assertTrue(matcher.match(new FormatBlock(Collections.<Block>emptyList(), Format.BOLD))); Assert.assertFalse(matcher.match(new WordBlock("test"))); }
@Test public void matchWhenUsingListConstructor() { OrBlockMatcher matcher = new OrBlockMatcher(Arrays.<BlockMatcher>asList( new ClassBlockMatcher(GroupBlock.class), new ClassBlockMatcher(FormatBlock.class))); Assert.assertTrue(matcher.match(new GroupBlock())); Assert.assertTrue(matcher.match(new FormatBlock(Collections.<Block>emptyList(), Format.BOLD))); Assert.assertFalse(matcher.match(new WordBlock("test"))); }