diff --git a/markwon-core/src/test/java/ru/noties/markwon/MarkwonSpansFactoryTest.java b/markwon-core/src/test/java/ru/noties/markwon/MarkwonSpansFactoryTest.java new file mode 100644 index 00000000..a2cb36ff --- /dev/null +++ b/markwon-core/src/test/java/ru/noties/markwon/MarkwonSpansFactoryTest.java @@ -0,0 +1,68 @@ +package ru.noties.markwon; + +import org.commonmark.node.BlockQuote; +import org.commonmark.node.Image; +import org.commonmark.node.Link; +import org.commonmark.node.ListItem; +import org.commonmark.node.Text; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.mock; + +public class MarkwonSpansFactoryTest { + + private MarkwonSpansFactoryImpl.BuilderImpl builder; + + @Before + public void before() { + builder = new MarkwonSpansFactoryImpl.BuilderImpl(); + } + + @Test + public void builder_set() { + final SpanFactory factory = mock(SpanFactory.class); + builder.setFactory(Text.class, factory); + builder.setFactory(Text.class, factory); + assertEquals(factory, builder.build().get(Text.class)); + assertEquals(factory, builder.build().require(Text.class)); + } + + @Test + public void builder_get_absent() { + // nothing is present + assertNull(builder.getFactory(Image.class)); + } + + @Test + public void builder_get_present() { + final SpanFactory factory = mock(SpanFactory.class); + builder.setFactory(ListItem.class, factory); + assertEquals(factory, builder.getFactory(ListItem.class)); + assertEquals(factory, builder.requireFactory(ListItem.class)); + } + + @Test + public void builder_require_fail() { + try { + builder.requireFactory(Link.class); + fail(); + } catch (NullPointerException e) { + assertTrue(e.getMessage(), e.getMessage().contains(Link.class.getName())); + } + } + + @Test + public void instance_require_fail() { + try { + builder.build().require(BlockQuote.class); + fail(); + } catch (NullPointerException e) { + assertTrue(e.getMessage(), e.getMessage().contains(BlockQuote.class.getName())); + } + } +} \ No newline at end of file diff --git a/markwon-core/src/test/java/ru/noties/markwon/core/CorePluginTest.java b/markwon-core/src/test/java/ru/noties/markwon/core/CorePluginTest.java index 1cbf908b..f3edf945 100644 --- a/markwon-core/src/test/java/ru/noties/markwon/core/CorePluginTest.java +++ b/markwon-core/src/test/java/ru/noties/markwon/core/CorePluginTest.java @@ -162,6 +162,12 @@ public class CorePluginTest { throw new RuntimeException(); } + @NonNull + @Override + public SpanFactory requireFactory(@NonNull Class node) { + throw new RuntimeException(); + } + @NonNull @Override public MarkwonSpansFactory build() {