package br.gov.servicos.cms; import br.gov.servicos.foundation.exceptions.ConteudoNaoEncontrado; import lombok.experimental.FieldDefaults; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.core.io.ClassPathResource; import java.io.IOException; import static lombok.AccessLevel.PRIVATE; import static org.hamcrest.Matchers.containsString; import static org.junit.Assert.assertThat; import static org.mockito.BDDMockito.given; @FieldDefaults(level = PRIVATE) @RunWith(MockitoJUnitRunner.class) public class MarkdownTest { Markdown markdown; @Mock ClassPathResource resource; @Before public void setUp() { markdown = new Markdown(); } @Test public void deveGerarHtmlDeResource() { assertThat(markdown.toHtml(new ClassPathResource("/conteudo/pagina.md")), containsString("<h1>Uma Página Qualquer</h1>")); } @Test public void deveExtrairTituloDaPaginaEmMarkdown() { assertThat(markdown.toHtml(new ClassPathResource("/conteudo/pagina.md")), containsString("Uma Página Qualquer")); } @Test(expected = ConteudoNaoEncontrado.class) public void deveJogarExcecaoQuandoConteudoNaoExiste() { markdown.toHtml(new ClassPathResource("/conteudo/404.md")); } @Test(expected = ConteudoNaoEncontrado.class) public void deveJogarExcecaoQuandoConteudoNaoPodeSerAcessado() throws Exception { given(resource.getInputStream()).willThrow(new IOException("mock")); markdown.toHtml(resource); } }