package gutenberg.pegdown.plugin;
import com.pholser.junit.quickcheck.ForAll;
import com.pholser.junit.quickcheck.generator.InRange;
import gutenberg.pegdown.AbstractPegdownTest;
import org.junit.contrib.theories.Theories;
import org.junit.contrib.theories.Theory;
import org.junit.runner.RunWith;
import org.pegdown.PegDownProcessor;
import org.pegdown.ast.RootNode;
import org.pegdown.plugins.PegDownPlugins;
import java.io.IOException;
import static org.assertj.core.api.Assertions.assertThat;
/**
* @author <a href="http://twitter.com/aloyer">@aloyer</a>
*/
@RunWith(Theories.class)
public class ExtensionsCompatibilityPluginTest extends AbstractPegdownTest {
@Theory
public void attributesPlugin(@ForAll @InRange(minInt = 0, maxInt = 0x0000FFFF) int extensions) throws IOException {
String mkd = loadResource("attributesText-simple.md").trim();
String ast = loadResource("attributesText-simple.ast").trim();
PegDownPlugins plugins = PegDownPlugins
.builder()
.withPlugin(AttributesPlugin.class)
.build();
PegDownProcessor processor = new PegDownProcessor(extensions, plugins);
RootNode rootNode = processor.parseMarkdown(normalize(mkd).toCharArray());
String s = dumpAST(rootNode);
assertThat(normalize(s.trim())).isEqualTo(normalize(ast));
}
}