Options retainAll(Schema schema, MarkSet markSet) { if (map.isEmpty()) return this; // Nothing to prune. Options result = new Options(optionType, optionElements); Object mapOrNull = retainAll(schema, markSet, optionType, map); result.map = mapOrNull != null ? (ImmutableMap<ProtoMember, Object>) mapOrNull : ImmutableMap.<ProtoMember, Object>of(); return result; }
@Test public void resolveFieldPathDoesntMatch() throws Exception { assertThat(Options.resolveFieldPath("a.b", set("c", "d"))).isNull(); }
@Test public void resolveFieldPathMatchesOnlySegment() throws Exception { assertThat(asList(Options.resolveFieldPath("a", set("a", "b")))).containsExactly("a"); }
@Test public void resolveFieldPathMatchesAllSegments() throws Exception { assertThat(asList(Options.resolveFieldPath("a.b.c.d", set("a.b.c.d", "z.b.c.d")))) .containsExactly("a.b.c.d"); }
@Test public void resolveFieldPathMatchesFirstSegment() throws Exception { assertThat(asList(Options.resolveFieldPath("a.b.c.d", set("a", "z", "y")))) .containsExactly("a", "b", "c", "d"); }