/*
documentr - Edit, maintain, and present software documentation on the web.
Copyright (C) 2012-2013 Maik Schreiber
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package de.blizzy.documentr.markdown.macro.impl;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import java.util.Collections;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import com.google.common.collect.Lists;
import de.blizzy.documentr.AbstractDocumentrTest;
import de.blizzy.documentr.markdown.Header;
import de.blizzy.documentr.markdown.HtmlSerializerContext;
import de.blizzy.documentr.markdown.macro.IMacroContext;
import de.blizzy.documentr.markdown.macro.impl.TableOfContentsMacro;
public class TableOfContentsMacroTest extends AbstractDocumentrTest {
private TableOfContentsMacro runnable;
@Mock
private IMacroContext context;
@Mock
private HtmlSerializerContext htmlSerializerContext;
@Before
public void setUp() {
runnable = new TableOfContentsMacro();
when(context.getHtmlSerializerContext()).thenReturn(htmlSerializerContext);
}
@Test
public void getMarkdown() {
List<Header> headers = Lists.newArrayList(
new Header("foo", 1), //$NON-NLS-1$
new Header("bar", 2), //$NON-NLS-1$
new Header("baz", 3), //$NON-NLS-1$
new Header("qux", 1)); //$NON-NLS-1$
when(htmlSerializerContext.getHeaders()).thenReturn(headers);
assertEquals(
"- [[#foo]]\n" + //$NON-NLS-1$
" - [[#bar]]\n" + //$NON-NLS-1$
" - [[#baz]]\n" + //$NON-NLS-1$
"- [[#qux]]\n\n", //$NON-NLS-1$
runnable.getMarkdown(context));
}
@Test
public void getMarkdownButNoHeaders() {
List<Header> headers = Collections.emptyList();
when(htmlSerializerContext.getHeaders()).thenReturn(headers);
assertNull(runnable.getMarkdown(context));
}
}