package br.gov.servicos.frontend;
import br.gov.servicos.cms.ConteudoController;
import br.gov.servicos.fixtures.TestData;
import br.gov.servicos.orgao.OrgaoController;
import br.gov.servicos.v3.schema.OrgaoXML;
import br.gov.servicos.v3.schema.ServicoXML;
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.web.servlet.ModelAndView;
import java.util.HashMap;
import java.util.Map;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.given;
import static org.springframework.test.web.ModelAndViewAssert.assertAndReturnModelAttributeOfType;
@RunWith(MockitoJUnitRunner.class)
public class MioloControllerTest {
@Mock
ConteudoController conteudos;
@Mock
OrgaoController orgaos;
MioloController miolo;
@Before
public void setUp() throws Exception {
miolo = new MioloController(orgaos, conteudos);
}
@Test
public void mioloParaServicos() throws Exception {
assertAndReturnModelAttributeOfType(miolo.getHtml(TestData.SERVICO), "servico", ServicoXML.class);
}
@Test
public void mioloParaConteudos() throws Exception {
Map<String, Object> model = new HashMap<>();
given(conteudos.paginaTematica(TestData.PAGINA_TEMATICA)).willReturn(new ModelAndView("conteudo", model));
assertThat(miolo.getHtml(TestData.PAGINA_TEMATICA).getModel(), is(model));
}
@Test
public void mioloParaOrgaos() throws Exception {
Map<String, Object> model = new HashMap<>();
model.put("foo", "bar");
given(orgaos.orgao(new OrgaoXML().withId("orgao-1"))).willReturn(new ModelAndView("orgao", model));
assertThat(miolo.getHtml(new OrgaoXML().withId("orgao-1")).getModel(), is(model));
}
}