package io.cattle.platform.servicediscovery.selector;
import static org.junit.Assert.assertEquals;
import io.cattle.platform.servicediscovery.api.util.selector.SelectorUtils;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
public class SelectorTest {
@Test
public void testEq() {
Map<String, String> labels = new HashMap<>();
labels.put("foo", "bar");
boolean result = SelectorUtils.isSelectorMatch("foo=bar", labels);
assertEquals(result, true);
// test with spaces
result = SelectorUtils.isSelectorMatch("foo = bar", labels);
assertEquals(result, true);
labels.put("foo", "bar1");
result = SelectorUtils.isSelectorMatch("foo=bar", labels);
assertEquals(result, false);
}
@Test
public void testNeq() {
Map<String, String> labels = new HashMap<>();
labels.put("foo", "bar");
boolean result = SelectorUtils.isSelectorMatch("foo!=bar", labels);
assertEquals(result, false);
labels.put("foo", "bar1");
result = SelectorUtils.isSelectorMatch("foo!=bar", labels);
assertEquals(result, true);
}
@Test
public void testIn() {
Map<String, String> labels = new HashMap<>();
labels.put("foo", "bar");
labels.put("a", "b");
boolean result = SelectorUtils.isSelectorMatch("foo in (bar,bar1)", labels);
assertEquals(result, true);
labels.put("foo", "bar2");
labels.put("a", "b");
result = SelectorUtils.isSelectorMatch("foo in (bar,bar1)", labels);
assertEquals(result, false);
}
@Test
public void testNotIn() {
Map<String, String> labels = new HashMap<>();
labels.put("foo", "bar");
labels.put("a", "b");
boolean result = SelectorUtils.isSelectorMatch("foo notin (bar,bar1)", labels);
assertEquals(result, false);
labels.put("foo", "bar2");
labels.put("a", "b");
result = SelectorUtils.isSelectorMatch("foo notin (bar,bar1)", labels);
assertEquals(result, true);
}
@Test
public void testList() {
Map<String, String> labels = new HashMap<>();
labels.put("foo", "inbar");
labels.put("a", "b");
boolean result = SelectorUtils.isSelectorMatch("foo in (inbar), a= b", labels);
assertEquals(result, true);
labels.put("foo", "bar2");
labels.put("a", "b");
result = SelectorUtils.isSelectorMatch("a =b1,foo in (bar2)", labels);
assertEquals(result, false);
}
@Test
public void testNoOp() {
Map<String, String> labels = new HashMap<>();
labels.put("foo", "bar");
boolean result = SelectorUtils.isSelectorMatch("foo", labels);
assertEquals(result, true);
labels.clear();
labels.put("foo1", "bar");
result = SelectorUtils.isSelectorMatch("foo", labels);
assertEquals(result, false);
labels.clear();
labels.put("foo", "bar");
labels.put("bar", "foo");
result = SelectorUtils.isSelectorMatch("foo, bar", labels);
assertEquals(result, true);
labels.clear();
labels.put("foo", "bar");
labels.put("bar1", "foo");
result = SelectorUtils.isSelectorMatch("foo, bar", labels);
assertEquals(result, false);
}
}