@Test
public void shouldGetAgentRollupIds() {

    assertThat(AgentRollupIds.getAgentRollupIds("aaa")).containsExactly("aaa");
    assertThat(AgentRollupIds.getAgentRollupIds("aaa::bbb")).containsExactly("aaa::bbb",
            "aaa::");
    assertThat(AgentRollupIds.getAgentRollupIds("aaa::bbb::ccc"))
            .containsExactly("aaa::bbb::ccc", "aaa::bbb::", "aaa::");
    assertThat(AgentRollupIds.getAgentRollupIds("a")).containsExactly("a");
    assertThat(AgentRollupIds.getAgentRollupIds("a::b")).containsExactly("a::b", "a::");
    assertThat(AgentRollupIds.getAgentRollupIds("a::b::c")).containsExactly("a::b::c", "a::b::",
            "a::");
    assertThat(AgentRollupIds.getAgentRollupIds("a:b:c")).containsExactly("a:b:c");
    assertThat(AgentRollupIds.getAgentRollupIds("a:::b")).containsExactly("a:::b", "a:::");
    assertThat(AgentRollupIds.getAgentRollupIds("a:::b:::c")).containsExactly("a:::b:::c",
            "a:::b:::", "a:::");
    assertThat(AgentRollupIds.getAgentRollupIds("a::::b")).containsExactly("a::::b", "a::::");
    assertThat(AgentRollupIds.getAgentRollupIds("a::::b::::c")).containsExactly("a::::b::::c",
            "a::::b::::", "a::::");
    assertThat(AgentRollupIds.getAgentRollupIds("a:::::b")).containsExactly("a:::::b", "a:::::",
            "a::");
    assertThat(AgentRollupIds.getAgentRollupIds("a:::::b:::::c")).containsExactly(
            "a:::::b:::::c", "a:::::b:::::", "a:::::b::", "a:::::", "a::");
    assertThat(AgentRollupIds.getAgentRollupIds(":")).containsExactly(":");
    assertThat(AgentRollupIds.getAgentRollupIds("::")).containsExactly("::");
    assertThat(AgentRollupIds.getAgentRollupIds(":::")).containsExactly(":::");
    assertThat(AgentRollupIds.getAgentRollupIds("::::")).containsExactly("::::");
    assertThat(AgentRollupIds.getAgentRollupIds(":::::")).containsExactly(":::::");
    assertThat(AgentRollupIds.getAgentRollupIds("::::::")).containsExactly("::::::", ":::");
}