public boolean isValid() {
        if (tokens == null)
            getTokens();

        return valid;
    }
@Test
    public void testValidationProcess() {
        // TopicMultiInTheMiddle
        assertThat(new Topic("finance/#/closingprice")).isInValid();

        // MultiNotAfterSeparator
        assertThat(new Topic("finance#")).isInValid();

        // TopicMultiNotAlone
        assertThat(new Topic("/finance/#closingprice")).isInValid();

        // SingleNotAferSeparator
        assertThat(new Topic("finance+")).isInValid();

        assertThat(new Topic("finance/+")).isValid();
    }