package br.gov.servicos.editor.conteudo.cartas;
import br.gov.servicos.editor.conteudo.ConteudoVersionadoFactory;
import br.gov.servicos.editor.conteudo.TipoPagina;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import static br.gov.servicos.editor.conteudo.TipoPagina.*;
import static org.junit.Assert.assertFalse;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
public class ExcluirPaginaControllerIntegrationTest extends RepositorioGitIntegrationTest {
public static final String CARTA_SIMPLES = "<servico><nome>a</nome></servico>";
public static final String PAGINA_SIMPLES = "<pagina-tematica><nome>a</nome></pagina-tematica>";
public static final String ORGAO_SIMPLES = "<orgao><nome>a</nome></orgao>";
@Autowired
ConteudoVersionadoFactory factory;
@Before
public void setup() {
setupBase()
.carta("carta-a", CARTA_SIMPLES)
.paginaTematica("pagina-a", PAGINA_SIMPLES)
.orgao("orgao-a", ORGAO_SIMPLES)
.build();
}
@Test
public void excluirServicoExistenteNoMasterDeveRetornar200Ok() throws Exception {
excluirPaginaExistenteNoMasterDeveRetornar200Ok(SERVICO, "carta-a");
}
@Test
public void excluirPaginaTematicaExistenteNoMasterDeveRetornar200Ok() throws Exception {
excluirPaginaExistenteNoMasterDeveRetornar200Ok(PAGINA_TEMATICA, "pagina-a");
}
@Test
public void excluirOrgaoExistenteNoMasterDeveRetornar406Ok() throws Exception {
api.excluirPagina(ORGAO, "orgao-a")
.andExpect(status().isNotAcceptable());
}
@Test
public void excluirPaginaInexistenteRetorna404() throws Exception {
api.excluirPagina(SERVICO, "carta-b")
.andExpect(status().isNotFound());
}
private void excluirPaginaExistenteNoMasterDeveRetornar200Ok(TipoPagina tipo, String id) throws Exception {
api.excluirPagina(tipo, id)
.andExpect(status().isOk());
assertFalse(factory.pagina(id, tipo)
.existe());
}
}