@Test
  public void canParseAProperDirective() {
    when(parser.moveNext(1)).thenReturn(new Symbol(SymbolType.Whitespace));
    final Symbol expectedSymbol = new Symbol(SymbolType.Text, "thePomFile");
    when(parser.parseTo(SymbolType.EndCell)).thenReturn(expectedSymbol);

    final Maybe<Symbol> result = mavenClasspathSymbolType.parse(symbol, parser);
    assertNotNull(result);
    assertNotSame(Symbol.nothing, result);
  }
  @Before
  public void setUp() throws Exception {
    symbol = mock(Symbol.class);
    parser = mock(Parser.class);
    translator = mock(Translator.class);
    mavenClasspathExtractor = mock(MavenClasspathExtractor.class);

    mavenClasspathSymbolType = new MavenClasspathSymbolType();
    mavenClasspathSymbolType.setMavenClasspathExtractor(mavenClasspathExtractor);
  }
  @Test
  public void translatesToJavaClasspath() {
    when(translator.translateTree(symbol)).thenReturn("thePomFile");

    when(mavenClasspathExtractor.extractClasspathEntries(
            any(ExtractClasspathEntriesParameter.class)))
        .thenReturn(Arrays.asList("test1", "test2"));

    assertArrayEquals(
        new Object[] {"test1", "test2"},
        mavenClasspathSymbolType.providePaths(translator, symbol).toArray());
  }
  @Test
  public void translatesToClasspathEntries() {
    when(translator.translateTree(symbol)).thenReturn("thePomFile");

    when(mavenClasspathExtractor.extractClasspathEntries(
            any(ExtractClasspathEntriesParameter.class)))
        .thenReturn(Arrays.asList("test1", "test2"));

    assertEquals(
        "scope: test<br/><span class=\"meta\">classpath: test1</span><br/><span class=\"meta\">classpath: test2</span><br/>",
        mavenClasspathSymbolType.toTarget(translator, symbol));
  }