package annotatedspring.episodes; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.core.Is.is; import org.junit.Test; public class EpisodeTest{ @Test public void slug_generatesSeoPath() { Episode episode = new Episode(); episode.setTitle("Episode Title"); assertThat(episode.getSlug(), is(equalTo("episode-title"))); } @Test public void slug_withSpecialCharacters_generatesSeoPath() { Episode episode = new Episode(); episode.setTitle("Web Application Layouts: Freemarker, WebJars & Bootstrap"); assertThat(episode.getSlug(), is(equalTo("web-application-layouts-freemarker-webjars-and-bootstrap"))); } @Test public void setEpisodeTitle_trimsLeadingTrailingWhitespace() { Episode episode = new Episode(); episode.setTitle(" no leading nor trailing spaces "); assertThat(episode.getTitle(), is(equalTo("no leading nor trailing spaces"))); } @Test public void getNotesHtml_enablesMarkdownTables() { Episode episode = new Episode(); String notes = "| Name| Value|\r\n" + "| ---- | ----- |\r\n" + "| Hello| World!|\r\n" + "| Another| Row|\r\n"; episode.setNotes(notes); assertThat(episode.getNotesHtml(), containsString("<table class=\"table\">")); } }