package fitnesse.wikitext.widgets; import fitnesse.wikitext.parser.Parser; import fitnesse.wikitext.parser.Symbol; import fitnesse.wikitext.parser.SymbolType; import org.junit.Before; import org.junit.Test; import util.Maybe; import java.io.File; import java.util.Arrays; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class MavenClasspathSymbolTypeTest { private MavenClasspathSymbolType mavenClasspathSymbolType; private MavenClasspathExtractor mavenClasspathExtractor; private Symbol symbol; private Parser parser; @Before public void setUp() throws Exception { symbol = mock(Symbol.class); parser = mock(Parser.class); mavenClasspathExtractor = mock(MavenClasspathExtractor.class); mavenClasspathSymbolType = new MavenClasspathSymbolType(); mavenClasspathSymbolType.setMavenClasspathExtractor(mavenClasspathExtractor); } @Test public void canParseAProperDirective() { when(parser.moveNext(1)) .thenReturn(new Symbol(SymbolType.Whitespace)) .thenReturn(new Symbol(SymbolType.Text, "thePomFile")); Maybe<Symbol> result = mavenClasspathSymbolType.parse(symbol, parser); assertNotNull(result); assertNotSame(Symbol.nothing, result); verify(symbol).add("thePomFile"); } @Test public void translatesToClasspathEntries() { Symbol child = mock(Symbol.class); when(symbol.childAt(0)).thenReturn(child); when(child.getContent()).thenReturn("thePomFile"); when(mavenClasspathExtractor.extractClasspathEntries(any(File.class), isA(String.class))) .thenReturn(Arrays.asList("test1", "test2")); assertEquals("<span class=\"meta\">classpath: test1</span><br/><span class=\"meta\">classpath: test2</span><br/>" , mavenClasspathSymbolType.toTarget(null, symbol)); } @Test public void translatesToJavaClasspath() { Symbol child = mock(Symbol.class); when(symbol.childAt(0)).thenReturn(child); when(child.getContent()).thenReturn("thePomFile"); when(mavenClasspathExtractor.extractClasspathEntries(any(File.class), isA(String.class))) .thenReturn(Arrays.asList("test1", "test2")); assertArrayEquals(new Object[] { "test1", "test2" }, mavenClasspathSymbolType.providePaths(null, symbol).toArray()); } }