package gcom.cadastro; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.Date; import java.util.HashSet; import java.util.Set; import org.junit.Before; import org.junit.Test; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.endereco.Cep; import gcom.cadastro.endereco.EnderecoReferencia; import gcom.cadastro.endereco.Logradouro; import gcom.cadastro.endereco.LogradouroBairro; import gcom.cadastro.endereco.LogradouroCep; import gcom.cadastro.endereco.LogradouroTipo; import gcom.cadastro.endereco.LogradouroTitulo; import gcom.cadastro.geografico.Bairro; import gcom.cadastro.geografico.Municipio; import gcom.cadastro.geografico.UnidadeFederacao; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.Quadra; import gcom.cadastro.localidade.SetorComercial; public class TesteImovel { private Imovel imovel; private Cliente clienteProprietario; private Cliente clienteResponsavel; private Cliente clienteUsuario; private ClienteRelacaoTipo proprietario; private ClienteRelacaoTipo responsavel; private ClienteRelacaoTipo usuario; @Before public void setUp() { imovel = new Imovel(); clienteProprietario = new Cliente(); clienteProprietario.setNome("Foo Proprietario"); clienteResponsavel = new Cliente(); clienteResponsavel.setNome("Foo Responsavel"); clienteUsuario = new Cliente(); clienteUsuario.setNome("Foo Usuario"); proprietario = new ClienteRelacaoTipo("Proprietario", ClienteRelacaoTipo.PROPRIETARIO, new Date()); proprietario.setId(ClienteRelacaoTipo.PROPRIETARIO.intValue()); responsavel = new ClienteRelacaoTipo("Responsavel", ClienteRelacaoTipo.RESPONSAVEL, new Date()); responsavel.setId(ClienteRelacaoTipo.RESPONSAVEL.intValue()); usuario = new ClienteRelacaoTipo("Usuario", ClienteRelacaoTipo.USUARIO, new Date()); usuario.setId(ClienteRelacaoTipo.USUARIO.intValue()); } @Test public void testGetClienteUsuario() { Set<ClienteImovel> clienteImoveis = new HashSet<ClienteImovel>(); ClienteImovel clienteImovel1 = new ClienteImovel(new Date(), imovel, null, clienteProprietario, proprietario); ClienteImovel clienteImovel2 = new ClienteImovel(new Date(), imovel, null, clienteResponsavel, responsavel); ClienteImovel clienteImovel3 = new ClienteImovel(new Date(), imovel, null, clienteUsuario, usuario); clienteImoveis.add(clienteImovel1); clienteImoveis.add(clienteImovel2); clienteImoveis.add(clienteImovel3); imovel.setClienteImoveis(clienteImoveis); assertEquals(clienteImovel3.getCliente().getNome(), imovel.getClienteUsuario().getNome()); } @Test public void testGetClienteUsuarioSemUsuario() { Set<ClienteImovel> clienteImoveis = new HashSet<ClienteImovel>(); ClienteImovel clienteImovel1 = new ClienteImovel(new Date(), imovel, null, clienteProprietario, proprietario); ClienteImovel clienteImovel2 = new ClienteImovel(new Date(), imovel, null, clienteResponsavel, responsavel); clienteImoveis.add(clienteImovel1); clienteImoveis.add(clienteImovel2); imovel.setClienteImoveis(clienteImoveis); assertEquals(null, imovel.getClienteUsuario()); } @Test public void testEnderecoFormatado() { Imovel imovel = buildImovelComEnderecoCompleto(); assertEquals("Avenida Almirante Barroso - em frente ao banco do brasil - 123 - " + "apto 1111 - Marco PA 66000-000 " + "ENTRE Travessa Mauriti E Travessa Bar�o do Triunfo", imovel.getEnderecoFormatado()); } @Test public void testEnderecoFormatadoAbreviado() { Imovel imovel = buildImovelComEnderecoAbreviado(); assertEquals("Av Alm Barroso, em frente ao BB 123 - " + "apto 1111 - Marco PA 66000-000 " + "ENTRE Travessa Mauriti E Travessa Bar�o do Triunfo", imovel.getEnderecoFormatadoAbreviado()); } @Test public void testEnderecoTipoTituloLogradouro() { Imovel imovel = buildImovelComEnderecoCompleto(); assertEquals("Avenida Almirante Barroso", imovel.getEnderecoTipoTituloLogradouro()); } @Test public void testInscricaoFormatada() { Localidade localidade = mock(Localidade.class); when(localidade.getId()).thenReturn(1); SetorComercial setorComercial = mock(SetorComercial.class); when(setorComercial.getCodigo()).thenReturn(1); Quadra quadra = mock(Quadra.class); when(quadra.getNumeroQuadra()).thenReturn(1); Imovel imovel = new Imovel(); imovel.setLocalidade(localidade); imovel.setSetorComercia(setorComercial); imovel.setQuadra(quadra); imovel.setLote((short)1); imovel.setSubLote((short)2); assertEquals("001.001.001.0001.002", imovel.getInscricaoFormatada()); } @Test public void testInscricaoFormatadaComSetorEQuadraComMais2Algarismos() { Localidade localidade = mock(Localidade.class); when(localidade.getId()).thenReturn(1); SetorComercial setorComercial = mock(SetorComercial.class); when(setorComercial.getCodigo()).thenReturn(12); Quadra quadra = mock(Quadra.class); when(quadra.getNumeroQuadra()).thenReturn(12); Imovel imovel = new Imovel(); imovel.setLocalidade(localidade); imovel.setSetorComercia(setorComercial); imovel.setQuadra(quadra); imovel.setLote((short)1); imovel.setSubLote((short)2); assertEquals("001.012.012.0001.002", imovel.getInscricaoFormatada()); } @Test public void testInscricaoFormatadaSemPonto() { Imovel imovel = buildImovelComInscricao(); assertEquals("0010120120001002", imovel.getInscricaoFormatadaSemPonto()); } private Imovel buildImovelComInscricao() { Localidade localidade = mock(Localidade.class); when(localidade.getId()).thenReturn(1); SetorComercial setorComercial = mock(SetorComercial.class); when(setorComercial.getCodigo()).thenReturn(12); Quadra quadra = mock(Quadra.class); when(quadra.getNumeroQuadra()).thenReturn(12); Imovel imovel = new Imovel(); imovel.setLocalidade(localidade); imovel.setSetorComercia(setorComercial); imovel.setQuadra(quadra); imovel.setLote((short)1); imovel.setSubLote((short)2); return imovel; } private Imovel buildImovelComEnderecoCompleto() { LogradouroTitulo logradouroTitulo = mock(LogradouroTitulo.class); when(logradouroTitulo.getDescricao()).thenReturn("Almirante"); LogradouroTipo logradouroTipo = mock(LogradouroTipo.class); when(logradouroTipo.getDescricao()).thenReturn("Avenida"); Logradouro logradouro = mock(Logradouro.class); when(logradouro.getId()).thenReturn(1); when(logradouro.getLogradouroTipo()).thenReturn(logradouroTipo); when(logradouro.getLogradouroTitulo()).thenReturn(logradouroTitulo); when(logradouro.getNome()).thenReturn("Barroso"); Cep cep = mock(Cep.class); when(cep.getCepFormatado()).thenReturn("66000-000"); LogradouroCep logradouroCep = mock(LogradouroCep.class); when(logradouroCep.getLogradouro()).thenReturn(logradouro); when(logradouroCep.getCep()).thenReturn(cep); EnderecoReferencia enderecoReferencia = mock(EnderecoReferencia.class); when(enderecoReferencia.getDescricao()).thenReturn("em frente ao banco do brasil"); UnidadeFederacao unidadeFederacao = mock(UnidadeFederacao.class); when(unidadeFederacao.getId()).thenReturn(1); when(unidadeFederacao.getSigla()).thenReturn("PA"); Municipio municipio = mock(Municipio.class); when(municipio.getNome()).thenReturn("Bel�m"); when(municipio.getUnidadeFederacao()).thenReturn(unidadeFederacao); Bairro bairro = mock(Bairro.class); when(bairro.getId()).thenReturn(1); when(bairro.getNome()).thenReturn("Marco"); when(bairro.getMunicipio()).thenReturn(municipio); LogradouroBairro logradouroBairro = mock(LogradouroBairro.class); when(logradouroBairro.getBairro()).thenReturn(bairro); Logradouro perimetroInicial = mock(Logradouro.class); when(perimetroInicial.getDescricaoFormatada()).thenReturn("Travessa Mauriti"); Logradouro perimetroFinal = mock(Logradouro.class); when(perimetroFinal.getDescricaoFormatada()).thenReturn("Travessa Bar�o do Triunfo"); imovel.setLogradouroCep(logradouroCep); imovel.setLogradouroBairro(logradouroBairro); imovel.setEnderecoReferencia(enderecoReferencia); imovel.setNumeroImovel("123"); imovel.setComplementoEndereco("apto 1111"); imovel.setPerimetroInicial(perimetroInicial); imovel.setPerimetroFinal(perimetroFinal); return imovel; } private Imovel buildImovelComEnderecoAbreviado() { LogradouroTitulo logradouroTitulo = mock(LogradouroTitulo.class); when(logradouroTitulo.getDescricaoAbreviada()).thenReturn("Alm"); LogradouroTipo logradouroTipo = mock(LogradouroTipo.class); when(logradouroTipo.getDescricaoAbreviada()).thenReturn("Av"); Logradouro logradouro = mock(Logradouro.class); when(logradouro.getId()).thenReturn(1); when(logradouro.getLogradouroTipo()).thenReturn(logradouroTipo); when(logradouro.getLogradouroTitulo()).thenReturn(logradouroTitulo); when(logradouro.getNome()).thenReturn("Barroso"); Cep cep = mock(Cep.class); when(cep.getCepFormatado()).thenReturn("66000-000"); LogradouroCep logradouroCep = mock(LogradouroCep.class); when(logradouroCep.getLogradouro()).thenReturn(logradouro); when(logradouroCep.getCep()).thenReturn(cep); EnderecoReferencia enderecoReferencia = mock(EnderecoReferencia.class); when(enderecoReferencia.getDescricaoAbreviada()).thenReturn("em frente ao BB"); UnidadeFederacao unidadeFederacao = mock(UnidadeFederacao.class); when(unidadeFederacao.getId()).thenReturn(1); when(unidadeFederacao.getSigla()).thenReturn("PA"); Municipio municipio = mock(Municipio.class); when(municipio.getNome()).thenReturn("Bel�m"); when(municipio.getUnidadeFederacao()).thenReturn(unidadeFederacao); Bairro bairro = mock(Bairro.class); when(bairro.getId()).thenReturn(1); when(bairro.getNome()).thenReturn("Marco"); when(bairro.getMunicipio()).thenReturn(municipio); LogradouroBairro logradouroBairro = mock(LogradouroBairro.class); when(logradouroBairro.getBairro()).thenReturn(bairro); Logradouro perimetroInicial = mock(Logradouro.class); when(perimetroInicial.getDescricaoFormatada()).thenReturn("Travessa Mauriti"); Logradouro perimetroFinal = mock(Logradouro.class); when(perimetroFinal.getDescricaoFormatada()).thenReturn("Travessa Bar�o do Triunfo"); imovel.setLogradouroCep(logradouroCep); imovel.setLogradouroBairro(logradouroBairro); imovel.setEnderecoReferencia(enderecoReferencia); imovel.setNumeroImovel("123"); imovel.setComplementoEndereco("apto 1111"); imovel.setPerimetroInicial(perimetroInicial); imovel.setPerimetroFinal(perimetroFinal); return imovel; } }