package br.gov.servicos.editor.conteudo.cartas; import br.gov.servicos.editor.conteudo.ConteudoVersionado; import br.gov.servicos.editor.conteudo.ConteudoVersionadoFactory; import br.gov.servicos.editor.conteudo.EditarPaginaController; import br.gov.servicos.editor.git.Metadados; import br.gov.servicos.editor.git.Revisao; 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.http.HttpHeaders; import java.util.Date; import static br.gov.servicos.editor.conteudo.TipoPagina.SERVICO; import static java.lang.String.valueOf; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import static org.mockito.BDDMockito.given; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; @RunWith(MockitoJUnitRunner.class) public class EditarPaginaControllerTest { static final Date HORARIO = new Date(); static final Revisao REVISAO = new Revisao().withHash("da39a3ee5e6b4b0d3255bfef95601890afd80709") .withAutor("Fulano de Tal") .withHorario(HORARIO); static final Metadados METADADOS = new Metadados() .withEditado(REVISAO) .withPublicado(REVISAO); @Mock ConteudoVersionadoFactory factory; @Mock ConteudoVersionado carta; EditarPaginaController controller; @Before public void setUp() throws Exception { given(carta.getMetadados()) .willReturn(METADADOS); given(carta.getConteudoRaw()) .willReturn("<servico/>"); given(carta.existe()) .willReturn(true); given(factory.pagina(anyString(), eq(SERVICO))) .willReturn(carta); controller = new EditarPaginaController(factory); } @Test public void adicionaHeadersDosMetadados() throws Exception { HttpHeaders response = controller.editar("servico", "").getHeaders(); assertThat(response.get("X-Git-Commit-Publicado").get(0), is("da39a3ee5e6b4b0d3255bfef95601890afd80709")); assertThat(response.get("X-Git-Autor-Publicado").get(0), is("Fulano de Tal")); assertThat(response.get("X-Git-Horario-Publicado").get(0), is(valueOf(HORARIO.getTime()))); assertThat(response.get("X-Git-Commit-Editado").get(0), is("da39a3ee5e6b4b0d3255bfef95601890afd80709")); assertThat(response.get("X-Git-Autor-Editado").get(0), is("Fulano de Tal")); assertThat(response.get("X-Git-Horario-Editado").get(0), is(valueOf(HORARIO.getTime()))); } }