package sagan.guides.support; import sagan.support.Fixtures; import saganx.AbstractIntegrationTests; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.junit.Test; import org.springframework.test.web.servlet.MvcResult; import static org.hamcrest.CoreMatchers.containsString; import static org.junit.Assert.assertThat; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; public class UnderstandingDocIntegrationTests extends AbstractIntegrationTests { @Test public void getExistingGuide() throws Exception { String readmeHtml = Fixtures.load("/fixtures/understanding/amqp/README.html"); stubRestClient.putResponse("/repos/spring-guides/understanding/contents/amqp/README.md", readmeHtml); String sidebarHtml = Fixtures.load("/fixtures/understanding/amqp/SIDEBAR.html"); stubRestClient.putResponse("/repos/spring-guides/understanding/contents/amqp/SIDEBAR.md", sidebarHtml); MvcResult response = mockMvc.perform(get("/understanding/AMqp")) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith("text/html")) .andReturn(); Document html = Jsoup.parse(response.getResponse().getContentAsString()); assertThat(html.select("title").text(), containsString("Understanding AMqp")); assertThat(html.select("h1").text(), containsString("Understanding: AMQP")); assertThat(html.select("aside").text(), containsString("Messaging with RabbitMQ")); } @Test public void nonExistentGuideReturns404() throws Exception { mockMvc.perform(get("/understanding/non_existent")) .andExpect(status().isNotFound()) .andReturn(); } }