/******************************************************************************* * Copyright (c) 2013 David Green and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * David Green - initial API and implementation *******************************************************************************/ package org.eclipse.mylyn.wikitext.textile.internal; import static org.junit.Assert.assertEquals; import java.io.StringWriter; import org.eclipse.mylyn.wikitext.parser.Attributes; import org.eclipse.mylyn.wikitext.parser.DocumentBuilder.BlockType; import org.eclipse.mylyn.wikitext.textile.internal.TextileDocumentBuilder; import org.eclipse.mylyn.wikitext.parser.ListAttributes; import org.junit.Before; import org.junit.Test; /** * @author David Green * @see TextileDocumentBuilder */ public class TextileDocumentBuilderDefinitionListTest { private TextileDocumentBuilder builder; private StringWriter out; @Before public void initBuilder() { out = new StringWriter(); builder = new TextileDocumentBuilder(out); } @Test public void simple() { builder.beginDocument(); beginDl(); dtDd("a term", "a definition"); endDl(); builder.endDocument(); assertEquals("- a term := a definition\n", out.toString()); } @Test public void twoEntries() { builder.beginDocument(); beginDl(); dtDd("a term", "a definition"); dtDd("term2", "definition2"); endDl(); builder.endDocument(); assertEquals("- a term := a definition\n- term2 := definition2\n", out.toString()); } @Test public void multiLineEntry() { builder.beginDocument(); beginDl(); dt("a multi line entry"); beginDd(); builder.characters("line one"); builder.lineBreak(); builder.characters("line two"); endDd(); endDl(); builder.endDocument(); assertEquals("- a multi line entry := line one\nline two =:\n", out.toString()); } protected void dtDd(String term, String definition) { dt(term); beginDd(); builder.characters(definition); endDd(); } protected void dt(String term) { beginDt(); builder.characters(term); endDt(); } private void endDd() { builder.endBlock(); } private void beginDd() { builder.beginBlock(BlockType.DEFINITION_ITEM, new Attributes()); } private void endDt() { builder.endBlock(); } private void beginDt() { builder.beginBlock(BlockType.DEFINITION_TERM, new Attributes()); } protected void endDl() { builder.endBlock(); } protected void beginDl() { builder.beginBlock(BlockType.DEFINITION_LIST, new ListAttributes()); } }