package com.cajp.giros.web.rest; import com.cajp.giros.Application; import com.cajp.giros.domain.Funcionario; import com.cajp.giros.repository.FuncionarioRepository; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.MockitoAnnotations; import org.springframework.boot.test.IntegrationTest; import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.http.MediaType; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import javax.inject.Inject; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; /** * Test class for the FuncionarioResource REST controller. * * @see FuncionarioResource */ @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = Application.class) @WebAppConfiguration @IntegrationTest public class FuncionarioResourceTest { private static final String DEFAULT_BI = "SAMPLE_TEXT"; private static final String UPDATED_BI = "UPDATED_TEXT"; private static final String DEFAULT_NOME = "SAMPLE_TEXT"; private static final String UPDATED_NOME = "UPDATED_TEXT"; private static final String DEFAULT_TELEFONE = "SAMPLE_TEXT"; private static final String UPDATED_TELEFONE = "UPDATED_TEXT"; private static final String DEFAULT_EMAIL = "SAMPLE_TEXT"; private static final String UPDATED_EMAIL = "UPDATED_TEXT"; @Inject private FuncionarioRepository funcionarioRepository; private MockMvc restFuncionarioMockMvc; private Funcionario funcionario; @PostConstruct public void setup() { MockitoAnnotations.initMocks(this); FuncionarioResource funcionarioResource = new FuncionarioResource(); ReflectionTestUtils.setField(funcionarioResource, "funcionarioRepository", funcionarioRepository); this.restFuncionarioMockMvc = MockMvcBuilders.standaloneSetup(funcionarioResource).build(); } @Before public void initTest() { funcionario = new Funcionario(); funcionario.setBi(DEFAULT_BI); funcionario.setNome(DEFAULT_NOME); funcionario.setTelefone(DEFAULT_TELEFONE); funcionario.setEmail(DEFAULT_EMAIL); } @Test @Transactional public void createFuncionario() throws Exception { // Validate the database is empty assertThat(funcionarioRepository.findAll()).hasSize(0); // Create the Funcionario restFuncionarioMockMvc.perform(post("/api/funcionarios") .contentType(TestUtil.APPLICATION_JSON_UTF8) .content(TestUtil.convertObjectToJsonBytes(funcionario))) .andExpect(status().isCreated()); // Validate the Funcionario in the database List<Funcionario> funcionarios = funcionarioRepository.findAll(); assertThat(funcionarios).hasSize(1); Funcionario testFuncionario = funcionarios.iterator().next(); assertThat(testFuncionario.getBi()).isEqualTo(DEFAULT_BI); assertThat(testFuncionario.getNome()).isEqualTo(DEFAULT_NOME); assertThat(testFuncionario.getTelefone()).isEqualTo(DEFAULT_TELEFONE); assertThat(testFuncionario.getEmail()).isEqualTo(DEFAULT_EMAIL); } @Test @Transactional public void getAllFuncionarios() throws Exception { // Initialize the database funcionarioRepository.saveAndFlush(funcionario); // Get all the funcionarios restFuncionarioMockMvc.perform(get("/api/funcionarios")) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.[0].id").value(funcionario.getId().intValue())) .andExpect(jsonPath("$.[0].bi").value(DEFAULT_BI.toString())) .andExpect(jsonPath("$.[0].nome").value(DEFAULT_NOME.toString())) .andExpect(jsonPath("$.[0].telefone").value(DEFAULT_TELEFONE.toString())) .andExpect(jsonPath("$.[0].email").value(DEFAULT_EMAIL.toString())); } @Test @Transactional public void getFuncionario() throws Exception { // Initialize the database funcionarioRepository.saveAndFlush(funcionario); // Get the funcionario restFuncionarioMockMvc.perform(get("/api/funcionarios/{id}", funcionario.getId())) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.id").value(funcionario.getId().intValue())) .andExpect(jsonPath("$.bi").value(DEFAULT_BI.toString())) .andExpect(jsonPath("$.nome").value(DEFAULT_NOME.toString())) .andExpect(jsonPath("$.telefone").value(DEFAULT_TELEFONE.toString())) .andExpect(jsonPath("$.email").value(DEFAULT_EMAIL.toString())); } @Test @Transactional public void getNonExistingFuncionario() throws Exception { // Get the funcionario restFuncionarioMockMvc.perform(get("/api/funcionarios/{id}", 1L)) .andExpect(status().isNotFound()); } @Test @Transactional public void updateFuncionario() throws Exception { // Initialize the database funcionarioRepository.saveAndFlush(funcionario); // Update the funcionario funcionario.setBi(UPDATED_BI); funcionario.setNome(UPDATED_NOME); funcionario.setTelefone(UPDATED_TELEFONE); funcionario.setEmail(UPDATED_EMAIL); restFuncionarioMockMvc.perform(put("/api/funcionarios") .contentType(TestUtil.APPLICATION_JSON_UTF8) .content(TestUtil.convertObjectToJsonBytes(funcionario))) .andExpect(status().isOk()); // Validate the Funcionario in the database List<Funcionario> funcionarios = funcionarioRepository.findAll(); assertThat(funcionarios).hasSize(1); Funcionario testFuncionario = funcionarios.iterator().next(); assertThat(testFuncionario.getBi()).isEqualTo(UPDATED_BI); assertThat(testFuncionario.getNome()).isEqualTo(UPDATED_NOME); assertThat(testFuncionario.getTelefone()).isEqualTo(UPDATED_TELEFONE); assertThat(testFuncionario.getEmail()).isEqualTo(UPDATED_EMAIL); } @Test @Transactional public void deleteFuncionario() throws Exception { // Initialize the database funcionarioRepository.saveAndFlush(funcionario); // Get the funcionario restFuncionarioMockMvc.perform(delete("/api/funcionarios/{id}", funcionario.getId()) .accept(TestUtil.APPLICATION_JSON_UTF8)) .andExpect(status().isOk()); // Validate the database is empty List<Funcionario> funcionarios = funcionarioRepository.findAll(); assertThat(funcionarios).hasSize(0); } }