package com.urbanairship.api.push.model.audience; import org.junit.Test; import static com.urbanairship.api.push.model.audience.Selectors.alias; import static com.urbanairship.api.push.model.audience.Selectors.and; import static com.urbanairship.api.push.model.audience.Selectors.apid; import static com.urbanairship.api.push.model.audience.Selectors.deviceToken; import static com.urbanairship.api.push.model.audience.Selectors.or; import static com.urbanairship.api.push.model.audience.Selectors.segment; import static com.urbanairship.api.push.model.audience.Selectors.tag; import static org.junit.Assert.assertEquals; public class SelectorVisitorTest { @Test public void testVisitor() throws Exception { Selector s = newTree(); CountingVisitor v = new CountingVisitor(); s.accept(v); assertEquals(14, v.count); } private Selector newTree() { // 14 nodes return or( and( or( alias("test1"), tag("foo"), tag("bar")), or( alias("test2"), tag("baz"))), segment("seg1"), deviceToken("EE139068625F0514D12E661A1DA7FDE84150505E74251320ADFF04C539D12D03"), deviceToken("EE139068625F0514D12E661A1DA7FDE84150505E74251320ADFF04C539D12D03"), apid("4ef648d9-92a2-6f32-42bc-0210cc7f8823"), apid("7a60aa49-1b24-1ef4-f425-f9ce8ce7ca55")); } public static class CountingVisitor implements SelectorVisitor { public int count = 0; @Override public void enter(Selector s) { count += 1; } @Override public void exit(Selector s) { } } }