package com.spotify.heroic.common;
import com.google.common.collect.ImmutableSet;
import org.junit.Test;
import java.util.Optional;
import java.util.Set;
import static org.junit.Assert.assertEquals;
public class GroupSetTest {
final Grouped a = grouped("foo");
final Grouped b = grouped("foo", "bar");
final Grouped c = grouped("bar");
private final GroupSet<Grouped> g =
GroupSet.build(ImmutableSet.of(a, b, c), Optional.empty());
@Test
public void useGroupTest() {
assertEquals(ImmutableSet.of(a, b, c), g.useDefaultGroup().getMembers());
assertEquals(ImmutableSet.of(a, b, c), g.useOptionalGroup(Optional.empty()).getMembers());
assertEquals(ImmutableSet.of(a, b), g.useGroup("foo").getMembers());
assertEquals(ImmutableSet.of(b, c), g.useGroup("bar").getMembers());
}
@Test
public void useMissingGroupTest() {
assertEquals(ImmutableSet.of(), g.useGroup("baz").getMembers());
}
@Test(expected = NullPointerException.class)
public void useNullFailureTest() {
assertEquals(ImmutableSet.of(), g.useGroup(null).getMembers());
}
static Grouped grouped(final String... names) {
final Set<String> groups = ImmutableSet.copyOf(names);
final Groups g = new Groups(groups);
return new Grouped() {
@Override
public Groups groups() {
return g;
}
};
}
}