|
@@ -20,111 +20,155 @@ import static org.hamcrest.Matchers.oneOf;
|
|
|
public class ExpandedIdsMatcherTests extends ESTestCase {
|
|
|
|
|
|
public void testMatchingResourceIds() {
|
|
|
- ExpandedIdsMatcher requiredMatches = new ExpandedIdsMatcher(new String[] { "*" }, false);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- assertTrue(requiredMatches.hasUnmatchedIds());
|
|
|
- requiredMatches.filterMatchedIds(Collections.singletonList("foo"));
|
|
|
- assertFalse(requiredMatches.hasUnmatchedIds());
|
|
|
- assertThat(requiredMatches.unmatchedIds(), empty());
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(ExpandedIdsMatcher.tokenizeExpression(""), false);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- requiredMatches.filterMatchedIds(Collections.singletonList("foo"));
|
|
|
- assertThat(requiredMatches.unmatchedIds(), empty());
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(ExpandedIdsMatcher.tokenizeExpression(null), false);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- requiredMatches.filterMatchedIds(Collections.singletonList("foo"));
|
|
|
- assertThat(requiredMatches.unmatchedIds(), empty());
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(ExpandedIdsMatcher.tokenizeExpression(null), false);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- requiredMatches.filterMatchedIds(Collections.emptyList());
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- assertThat(requiredMatches.unmatchedIds().get(0), equalTo("*"));
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(ExpandedIdsMatcher.tokenizeExpression("_all"), false);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- requiredMatches.filterMatchedIds(Collections.singletonList("foo"));
|
|
|
- assertThat(requiredMatches.unmatchedIds(), empty());
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(new String[] { "foo*" }, false);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- requiredMatches.filterMatchedIds(Arrays.asList("foo1", "foo2"));
|
|
|
- assertThat(requiredMatches.unmatchedIds(), empty());
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(new String[] { "foo*", "bar" }, false);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(2));
|
|
|
- requiredMatches.filterMatchedIds(Arrays.asList("foo1", "foo2"));
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- assertEquals("bar", requiredMatches.unmatchedIds().get(0));
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(new String[] { "foo*", "bar" }, false);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(2));
|
|
|
- requiredMatches.filterMatchedIds(Arrays.asList("foo1", "bar"));
|
|
|
- assertFalse(requiredMatches.hasUnmatchedIds());
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(new String[] { "foo*", "bar" }, false);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(2));
|
|
|
- requiredMatches.filterMatchedIds(Collections.singletonList("bar"));
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- assertEquals("foo*", requiredMatches.unmatchedIds().get(0));
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(ExpandedIdsMatcher.tokenizeExpression("foo,bar,baz,wild*"), false);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(4));
|
|
|
- requiredMatches.filterMatchedIds(Arrays.asList("foo", "baz"));
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(2));
|
|
|
- assertThat(requiredMatches.unmatchedIds().get(0), is(oneOf("bar", "wild*")));
|
|
|
- assertThat(requiredMatches.unmatchedIds().get(1), is(oneOf("bar", "wild*")));
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(new String[] { "foo", "bar" }, false);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(2));
|
|
|
- requiredMatches.filterMatchedIds(Collections.singletonList("bar"));
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- assertEquals("foo", requiredMatches.unmatchedIds().get(0));
|
|
|
- assertTrue(requiredMatches.isOnlyExact());
|
|
|
+ ExpandedIdsMatcher matcher = new ExpandedIdsMatcher(new String[] { "*" }, false);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ assertTrue(matcher.hasUnmatchedIds());
|
|
|
+ matcher.filterMatchedIds(Collections.singletonList("foo"));
|
|
|
+ assertFalse(matcher.hasUnmatchedIds());
|
|
|
+ assertThat(matcher.unmatchedIds(), empty());
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher("", false);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ matcher.filterMatchedIds(Collections.singletonList("foo"));
|
|
|
+ assertThat(matcher.unmatchedIds(), empty());
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher(ExpandedIdsMatcher.tokenizeExpression(null), false);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ matcher.filterMatchedIds(Collections.singletonList("foo"));
|
|
|
+ assertThat(matcher.unmatchedIds(), empty());
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher(ExpandedIdsMatcher.tokenizeExpression(null), false);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ matcher.filterMatchedIds(Collections.emptyList());
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ assertThat(matcher.unmatchedIds().get(0), equalTo("*"));
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher("_all", false);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ matcher.filterMatchedIds(Collections.singletonList("foo"));
|
|
|
+ assertThat(matcher.unmatchedIds(), empty());
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher(new String[] { "foo*" }, false);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ matcher.filterMatchedIds(Arrays.asList("foo1", "foo2"));
|
|
|
+ assertThat(matcher.unmatchedIds(), empty());
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("foo1"));
|
|
|
+ assertFalse(matcher.idMatches("bar"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher(new String[] { "foo*", "bar" }, false);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(2));
|
|
|
+ matcher.filterMatchedIds(Arrays.asList("foo1", "foo2"));
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ assertEquals("bar", matcher.unmatchedIds().get(0));
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("foo1"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+ assertFalse(matcher.idMatches("bar1"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher(new String[] { "foo*", "bar" }, false);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(2));
|
|
|
+ matcher.filterMatchedIds(Arrays.asList("foo1", "bar"));
|
|
|
+ assertFalse(matcher.hasUnmatchedIds());
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("foo1"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+ assertFalse(matcher.idMatches("bar1"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher(new String[] { "foo*", "bar" }, false);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(2));
|
|
|
+ matcher.filterMatchedIds(Collections.singletonList("bar"));
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ assertEquals("foo*", matcher.unmatchedIds().get(0));
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("foo1"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+ assertFalse(matcher.idMatches("bar1"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher("foo,bar,baz,wild*", false);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(4));
|
|
|
+ matcher.filterMatchedIds(Arrays.asList("foo", "baz"));
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(2));
|
|
|
+ assertThat(matcher.unmatchedIds().get(0), is(oneOf("bar", "wild*")));
|
|
|
+ assertThat(matcher.unmatchedIds().get(1), is(oneOf("bar", "wild*")));
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertFalse(matcher.idMatches("foo1"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+ assertTrue(matcher.idMatches("wild"));
|
|
|
+ assertTrue(matcher.idMatches("wild1"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher(new String[] { "foo", "bar" }, false);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(2));
|
|
|
+ matcher.filterMatchedIds(Collections.singletonList("bar"));
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ assertEquals("foo", matcher.unmatchedIds().get(0));
|
|
|
+ assertTrue(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertFalse(matcher.idMatches("foo1"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
}
|
|
|
|
|
|
public void testMatchingResourceIds_allowNoMatch() {
|
|
|
- ExpandedIdsMatcher requiredMatches = new ExpandedIdsMatcher(new String[] { "*" }, true);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), empty());
|
|
|
- assertFalse(requiredMatches.hasUnmatchedIds());
|
|
|
- requiredMatches.filterMatchedIds(Collections.emptyList());
|
|
|
- assertThat(requiredMatches.unmatchedIds(), empty());
|
|
|
- assertFalse(requiredMatches.hasUnmatchedIds());
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(new String[] { "foo*", "bar" }, true);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- assertTrue(requiredMatches.hasUnmatchedIds());
|
|
|
- requiredMatches.filterMatchedIds(Collections.singletonList("bar"));
|
|
|
- assertThat(requiredMatches.unmatchedIds(), empty());
|
|
|
- assertFalse(requiredMatches.hasUnmatchedIds());
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(new String[] { "foo*", "bar" }, true);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- requiredMatches.filterMatchedIds(Collections.emptyList());
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- assertEquals("bar", requiredMatches.unmatchedIds().get(0));
|
|
|
- assertFalse(requiredMatches.isOnlyExact());
|
|
|
-
|
|
|
- requiredMatches = new ExpandedIdsMatcher(new String[] { "foo", "bar" }, true);
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(2));
|
|
|
- requiredMatches.filterMatchedIds(Collections.singletonList("bar"));
|
|
|
- assertThat(requiredMatches.unmatchedIds(), hasSize(1));
|
|
|
- assertEquals("foo", requiredMatches.unmatchedIds().get(0));
|
|
|
- assertTrue(requiredMatches.isOnlyExact());
|
|
|
+ ExpandedIdsMatcher matcher = new ExpandedIdsMatcher(new String[] { "*" }, true);
|
|
|
+ assertThat(matcher.unmatchedIds(), empty());
|
|
|
+ assertFalse(matcher.hasUnmatchedIds());
|
|
|
+ matcher.filterMatchedIds(Collections.emptyList());
|
|
|
+ assertThat(matcher.unmatchedIds(), empty());
|
|
|
+ assertFalse(matcher.hasUnmatchedIds());
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher(new String[] { "foo*", "bar" }, true);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ assertTrue(matcher.hasUnmatchedIds());
|
|
|
+ matcher.filterMatchedIds(Collections.singletonList("bar"));
|
|
|
+ assertThat(matcher.unmatchedIds(), empty());
|
|
|
+ assertFalse(matcher.hasUnmatchedIds());
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("foo1"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher(new String[] { "foo*", "bar" }, true);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ matcher.filterMatchedIds(Collections.emptyList());
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ assertEquals("bar", matcher.unmatchedIds().get(0));
|
|
|
+ assertFalse(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertTrue(matcher.idMatches("foo1"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
+
|
|
|
+ matcher = new ExpandedIdsMatcher(new String[] { "foo", "bar" }, true);
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(2));
|
|
|
+ matcher.filterMatchedIds(Collections.singletonList("bar"));
|
|
|
+ assertThat(matcher.unmatchedIds(), hasSize(1));
|
|
|
+ assertEquals("foo", matcher.unmatchedIds().get(0));
|
|
|
+ assertTrue(matcher.isOnlyExact());
|
|
|
+ assertTrue(matcher.idMatches("foo"));
|
|
|
+ assertFalse(matcher.idMatches("foo1"));
|
|
|
+ assertTrue(matcher.idMatches("bar"));
|
|
|
}
|
|
|
|
|
|
public void testSimpleMatcher() {
|