-
Notifications
You must be signed in to change notification settings - Fork 41.6k
Closed
Labels
status: invalidAn issue that we don't feel is validAn issue that we don't feel is valid
Description
Good night ! When I use Mock it works when I use MockBean it does not work, somebody has some idea ... Thanks since. I have 3 classes.
@Entity
@Table(name = "pessoa", schema = "public")
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Pessoa implements Serializable {@Entity
@Table(name = "fisica", schema = "public")
@PrimaryKeyJoinColumn(name = "fkpessoa")
public class Fisica extends Pessoa implements Serializable {@Entity
@Table(name = "juridica", schema = "public", uniqueConstraints = {@UniqueConstraint(columnNames = {"cnpj", "inscest"})})
@PrimaryKeyJoinColumn(name = "fkpessoa")
public class Juridica extends Pessoa implements Serializable {import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.BDDMockito;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import java.time.LocalDate;
import java.time.Month;
import java.util.ArrayList;
import java.util.List;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@ActiveProfiles("test")
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
@AutoConfigureMockMvc
public class PessoaResourceTest {
// Endpoint
private static final String URL_BASE = "/pessoa/";
// Pessoa
private static final Long PESSOA_ID = 1L;
private static final String FISICA_NOMERAZAO = "Eduarda Simone Jesus";
private static final boolean PESSOA_ATIVO = true;
private static final String PESSOA_OBS = "OBS";
private static final boolean PESSOA_EMAILAUTO = true;
private static final boolean PESSOA_ISENTOICMS = true;
// Fisica
private static final String FISICA_CPF = "612.620.058-68";
private static final String FISICA_RG = "38.452.247-6";
private static final String FISICA_SEXO = Sexo.FEMININO.getValor();
private static final LocalDate FISICA_NASCIMENTO = LocalDate.of(1998, Month.APRIL, 11);
private static final String FISICA_PAI = "Priscila Simone";
private static final String FISICA_MAE = "Calebe Augusto Jesus";
// Juridica
private static final String JURIDICA_NOMERAZAO = "Bárbara e Giovanna Esportes ME";
private static final String JURIDICA_FANTASIA = "Bárbara e Giovanna Esportes ME";
private static final String JURIDICA_CNPJ = "42.765.656/0001-45";
private static final String JURIDICA_INSCEST = "526.160.231.117";
// Estado Civil
private static final Integer ESTADOCIVIL_ID = 1;
private static final String ESTADOCIVIL_DESCRICAO = "Solteiro";
// Endereco
private static final Long ENDERECO_ID = 1L;
private static final String ENDERECO_TIPO = "Residencia";
private static final String ENDERECO_CEP = "11680-971";
private static final String ENDERECO_BAIRRO = "Centro";
private static final String ENDERECO_NUMERO = "246";
private static final String ENDERECO_COMPLEMENTO = "Casa 1";
private static final String ENDERECO_REFERENCIA = "Proximo ao bar do Manoel";
private static final String ENDERECO_LOGRADOURO = "Avenida Rio Grande do Sul 725";
private static final boolean ENDERECO_PADRAO = true;
// Cidade
private static final Integer CIDADE_ID = 3555406;
private static final String CIDADE_DESCRICAO = "Ubatuba";
private static final String CIDADE_UF = "SP";
// Pais
private static final Integer PAIS_ID = 1050;
private static final String PAIS_DESCRICAO = "Brasil";
// Telefone
private static final Long TELEFONE_ID = 1L;
private static final String TELEFONE_DESCRICAO = "Residencia";
private static final String TELEFONE_TELEFONE = "(12) 3919-5701";
private static final boolean TELEFONE_PADRAO = false;
// Celular
private static final Long CELULAR_ID = 2L;
private static final String CELULAR_DESCRICAO = "Celular";
private static final String CELULAR_TELEFONE = "(12) 99388-6574";
private static final boolean CELULAR_PADRAO = true;
// E-mail
private static final Long ENDERECOVIRTUAL_ID = 1L;
private static final String ENDERECOVIRTUAL_TIPO = "E-mail";
private static final String ENDERECOVIRTUAL_DESCRICAO = "[email protected]";
private static final boolean ENDERECOVIRTUAL_PADRAO = true;
@Autowired
private MockMvc mvc;
@MockBean
private PessoaService pessoaService;
@MockBean
private EstadoCivilService estadoCivilService;
@MockBean
private CidadeService cidadeService;
@MockBean
private PaisService paisService;
@Test
@WithMockUser
public void testIncluirPessoaFisica() throws Exception {
Fisica pessoaFisica = obterDadosPessoaFisica();
BDDMockito.given(this.pessoaService.salvar(Mockito.any(Fisica.class))).willReturn(pessoaFisica);
mvc.perform(MockMvcRequestBuilders.post(URL_BASE)
.content(this.obterJsonRequisicaoPostFisica())
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isCreated())
.andExpect(header().exists("location"));
}
@Test
@WithMockUser
public void testIncluirPessoaJuridica() throws Exception {
Juridica juridica = obterDadosPessoaJuridica();
BDDMockito.given(this.pessoaService.salvar(Mockito.any(Fisica.class))).willReturn(juridica);
mvc.perform(MockMvcRequestBuilders.post(URL_BASE)
.content(this.obterJsonRequisicaoPostJuridica())
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isCreated())
.andExpect(header().exists("location"));
}
private String obterJsonRequisicaoPostFisica() throws JsonProcessingException {
FisicaDTO fisicaDTO = FisicaDTO.FisicaDTOBuilder
.aFisicaDTO()
.comNomeRazao(FISICA_NOMERAZAO)
.comAtivo(PESSOA_ATIVO)
.comObs(PESSOA_OBS)
.comEmailAuto(PESSOA_EMAILAUTO)
.comIsentoicms(PESSOA_ISENTOICMS)
.comCpf(FISICA_CPF)
.comRg(FISICA_RG)
.comSexo(Sexo.parse(FISICA_SEXO))
.comNascimento(FISICA_NASCIMENTO)
.comPai(FISICA_PAI)
.comMae(FISICA_MAE)
.comEstadoCivil(buildEstadoCivilDTO())
.comEnderecos(buildEnderecosDTO())
.comEnderecosVirtuais(buildEnderecosVirtuaisDTO())
.comTelefones(buildTelefonesDTO())
.build();
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(fisicaDTO);
}
private List<TelefoneDTO> buildTelefonesDTO() {
List<TelefoneDTO> telefones = new ArrayList<>();
telefones.add(TelefoneDTO.TelefoneDTOBuilder
.oTelefoneDTO()
.comId(TELEFONE_ID)
.comDescricao(TELEFONE_DESCRICAO)
.comTelefone(TELEFONE_TELEFONE)
.comPadrao(TELEFONE_PADRAO)
.build());
telefones.add(TelefoneDTO.TelefoneDTOBuilder
.oTelefoneDTO()
.comId(CELULAR_ID)
.comDescricao(CELULAR_DESCRICAO)
.comTelefone(CELULAR_TELEFONE)
.comPadrao(CELULAR_PADRAO)
.build());
return telefones;
}
private List<EnderecoVirtualDTO> buildEnderecosVirtuaisDTO() {
List<EnderecoVirtualDTO> enderecoVirtuais = new ArrayList<>();
enderecoVirtuais.add(EnderecoVirtualDTO.EnderecoVirtualDTOBuilder
.oEnderecoVirtualDTO()
.comId(ENDERECOVIRTUAL_ID)
.comTipo(ENDERECOVIRTUAL_TIPO)
.comDescricao(ENDERECOVIRTUAL_DESCRICAO)
.comPadrao(ENDERECOVIRTUAL_PADRAO).build());
return enderecoVirtuais;
}
private List<EnderecoDTO> buildEnderecosDTO() {
List<EnderecoDTO> enderecos = new ArrayList<>();
enderecos.add(EnderecoDTO.EnderecoDTOBuilder
.oEnderecoDTO()
.comId(ENDERECO_ID)
.comTipo(ENDERECO_TIPO)
.comCep(ENDERECO_CEP)
.comBairro(ENDERECO_BAIRRO)
.comNumero(ENDERECO_NUMERO)
.comComplemento(ENDERECO_COMPLEMENTO)
.comReferencia(ENDERECO_REFERENCIA)
.comLogradouro(ENDERECO_LOGRADOURO)
.comPadrao(ENDERECO_PADRAO)
.comCidade(buildCidadeDTO())
.comPais(buildPaisDTO())
.build());
return enderecos;
}
private PaisDTO buildPaisDTO() {
return PaisDTO.PaisDTOBuilder
.oPaisDTO()
.comId(PAIS_ID)
.comDescricao(PAIS_DESCRICAO)
.build();
}
private CidadeDTO buildCidadeDTO() {
return CidadeDTO.CidadeDTOBuilder
.aCidadeDTO()
.comId(CIDADE_ID)
.comDescricao(CIDADE_DESCRICAO)
.comUf(CIDADE_UF)
.build();
}
private EstadoCivilDTO buildEstadoCivilDTO() {
return EstadoCivilDTO.EstadoCivilDTOBuilder
.oEstadoCivilDTO()
.comId(ESTADOCIVIL_ID)
.comDescricao(ESTADOCIVIL_DESCRICAO)
.build();
}
private Fisica obterDadosPessoaFisica() {
return Fisica.FisicaBuilder
.aFisica()
.comId(PESSOA_ID)
.comNomeRazao(FISICA_NOMERAZAO)
.comAtivo(PESSOA_ATIVO)
.comObs(PESSOA_OBS)
.comEmailAuto(PESSOA_EMAILAUTO)
.comIsentoicms(PESSOA_ISENTOICMS)
.comEstadoCivil(buildEstadoCivil())
.comEnderecos(buildEnderecos())
.comEnderecosVirtuais(buildEnderecosVirtuais())
.comTelefones(buildTelefones())
.comCpf(FISICA_CPF)
.comRg(FISICA_RG)
.comSexo(Sexo.parse(FISICA_SEXO))
.comNascimento(FISICA_NASCIMENTO)
.comPai(FISICA_PAI)
.comMae(FISICA_MAE)
.build();
}
private List<EnderecoVirtual> buildEnderecosVirtuais() {
List<EnderecoVirtual> enderecoVirtuais = new ArrayList<>();
enderecoVirtuais.add(EnderecoVirtual.EnderecoVirtualBuilder
.oEnderecoVirtual()
.comId(ENDERECOVIRTUAL_ID)
.comTipo(ENDERECOVIRTUAL_TIPO)
.comDescricao(ENDERECOVIRTUAL_DESCRICAO)
.comPadrao(ENDERECOVIRTUAL_PADRAO).build());
return enderecoVirtuais;
}
private List<Telefone> buildTelefones() {
List<Telefone> telefones = new ArrayList<>();
telefones.add(Telefone.TelefoneBuilder
.oTelefone()
.comId(TELEFONE_ID)
.comDescricao(TELEFONE_DESCRICAO)
.comTelefone(TELEFONE_TELEFONE)
.comPadrao(TELEFONE_PADRAO)
.build());
telefones.add(Telefone.TelefoneBuilder
.oTelefone()
.comId(CELULAR_ID)
.comDescricao(CELULAR_DESCRICAO)
.comTelefone(CELULAR_TELEFONE)
.comPadrao(CELULAR_PADRAO)
.build());
return telefones;
}
private List<Endereco> buildEnderecos() {
List<Endereco> enderecos = new ArrayList<>();
enderecos.add(Endereco.EnderecoBuilder
.oEndereco()
.comId(ENDERECO_ID)
.comTipo(ENDERECO_TIPO)
.comCep(ENDERECO_CEP)
.comBairro(ENDERECO_BAIRRO)
.comNumero(ENDERECO_NUMERO)
.comComplemento(ENDERECO_COMPLEMENTO)
.comReferencia(ENDERECO_REFERENCIA)
.comLogradouro(ENDERECO_LOGRADOURO)
.comPadrao(ENDERECO_PADRAO)
.comCidade(buildCidade())
.comPais(buildPais())
.build());
return enderecos;
}
private Pais buildPais() {
return paisService.salvar(Pais.PaisBuilder
.oPais()
.comId(PAIS_ID)
.comDescricao(PAIS_DESCRICAO)
.build());
}
private Cidade buildCidade() {
return cidadeService.salvar(Cidade.CidadeBuilder
.aCidade()
.comId(CIDADE_ID)
.comDescricao(CIDADE_DESCRICAO)
.comUf(CIDADE_UF)
.build());
}
private EstadoCivil buildEstadoCivil() {
return estadoCivilService.salvar(EstadoCivil.EstadoCivilBuilder
.oEstadoCivil()
.comId(ESTADOCIVIL_ID)
.comDescricao(ESTADOCIVIL_DESCRICAO)
.build());
}
private String obterJsonRequisicaoPostJuridica() throws JsonProcessingException {
JuridicaDTO juridicaDTO = JuridicaDTO.JuridicaDTOBuilder
.aJuridicaDTO()
.comNomeRazao(JURIDICA_NOMERAZAO)
.comAtivo(PESSOA_ATIVO)
.comObs(PESSOA_OBS)
.comEmailAuto(PESSOA_EMAILAUTO)
.comIsentoicms(PESSOA_ISENTOICMS)
.comEnderecos(buildEnderecosDTO())
.comEnderecosVirtuais(buildEnderecosVirtuaisDTO())
.comTelefones(buildTelefonesDTO())
.comCnpj(JURIDICA_CNPJ)
.comFantasia(JURIDICA_FANTASIA)
.comInscest(JURIDICA_INSCEST)
.build();
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(juridicaDTO);
}
private Juridica obterDadosPessoaJuridica() {
return Juridica.JuridicaBuilder
.aJuridica()
.comId(PESSOA_ID)
.comNomeRazao(FISICA_NOMERAZAO)
.comAtivo(PESSOA_ATIVO)
.comObs(PESSOA_OBS)
.comEmailAuto(PESSOA_EMAILAUTO)
.comFantasia(FISICA_NOMERAZAO)
.build();
}
}Metadata
Metadata
Assignees
Labels
status: invalidAn issue that we don't feel is validAn issue that we don't feel is valid