package br.gov.servicos.editor.conteudo.cartas; import org.junit.Test; import static br.gov.servicos.editor.conteudo.TipoPagina.PAGINA_TEMATICA; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; public class PublicarPaginaControllerIntegrationTest extends RepositorioGitIntegrationTest { public static final String CONTEUDO_PAGINA_TEMATICA = "<pagina-tematica><nome>Pagina A</nome></pagina-tematica>"; @Test public void renomearAlterarPublicarNaoDeveDarConflitos() throws Exception { setupBase() .carta("teste-a", "<servico><nome>Teste A</nome><sigla>TSTA</sigla></servico>") .build(); api.editarCarta("teste-a") .andExpect(status().isOk()); api.salvarCarta("teste-a", "<servico><nome>Teste A</nome><sigla>TSTA</sigla><nomes-populares><item>C</item></nomes-populares></servico>") .andExpect(status().is(303)) .andExpect(redirectedUrl("/editar/api/pagina/servico/teste-a")); api.renomearCarta("teste-a", "teste-b") .andExpect(status().isOk()); api.editarCarta("teste-b") .andExpect(status().isOk()); api.salvarCarta("teste-b", "<servico><nome>Teste B</nome><sigla>TSTB</sigla><nomes-populares><item>A</item><item>B</item></nomes-populares></servico>") .andExpect(status().is(303)) .andExpect(redirectedUrl("/editar/api/pagina/servico/teste-b")); api.listar() .andExpect(status().isOk()) .andExpect(jsonPath("$[0].temAlteracoesNaoPublicadas").value(true)); api.publicarCarta("teste-b") .andExpect(status().isOk()); api.listar() .andExpect(status().isOk()) .andExpect(jsonPath("$[0].temAlteracoesNaoPublicadas").value(false)); api.editarCarta("teste-b") .andExpect(status().isOk()) .andExpect(content().xml("<servico><nome>Teste B</nome><sigla>TSTB</sigla><nomes-populares><item>A</item><item>B</item></nomes-populares></servico>")); } @Test public void publicarPaginaTematica() throws Exception { setupBase() .paginaTematica("p-a", CONTEUDO_PAGINA_TEMATICA) .build(); api.editarPagina(PAGINA_TEMATICA, "p-a") .andExpect(status().isOk()) .andExpect(content().xml(CONTEUDO_PAGINA_TEMATICA)); api.salvarPagina(PAGINA_TEMATICA, "p-a", "<pagina-tematica><nome>Pagina A</nome><conteudo>blah</conteudo></pagina-tematica>") .andExpect(status().is(303)) .andExpect(redirectedUrl("/editar/api/pagina/pagina-tematica/p-a")); api.listar() .andExpect(status().isOk()) .andExpect(jsonPath("$[0].temAlteracoesNaoPublicadas").value(true)); api.publicarPagina(PAGINA_TEMATICA, "p-a") .andExpect(status().isOk()); api.listar() .andExpect(status().isOk()) .andExpect(jsonPath("$[0].temAlteracoesNaoPublicadas").value(false)); api.editarPagina(PAGINA_TEMATICA, "p-a") .andExpect(status().isOk()) .andExpect(content().xml("<pagina-tematica><nome>Pagina A</nome><conteudo>blah</conteudo></pagina-tematica>")); } }