package gcom.transacao;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import static org.junit.Assert.*;
import gcom.cadastro.atualizacaocadastral.SituacaoAguaHelper;
import gcom.cadastro.atualizacaocadastral.SituacaoEsgotoHelper;
import gcom.cadastro.atualizacaocadastral.SituacaoSubcategoriaHelper;
import gcom.cadastro.atualizacaocadastral.bean.DadosTabelaAtualizacaoCadastralHelper;
import gcom.util.AtualizacaoCadastralUtil;
public class TesteCargaAlteracoesArquivo {
private Collection<DadosTabelaAtualizacaoCadastralHelper> montaObjetos(Collection<DadosTabelaAtualizacaoCadastralHelper> existentes, List<DadosTabelaAtualizacaoCadastralHelper> lista){
Map<String, List<DadosTabelaAtualizacaoCadastralHelper>> map = new HashMap<String, List<DadosTabelaAtualizacaoCadastralHelper>>();
for (DadosTabelaAtualizacaoCadastralHelper item : lista) {
List<DadosTabelaAtualizacaoCadastralHelper> testes = map.get(item.getNomeColuna());
if (testes == null){
testes = new LinkedList<DadosTabelaAtualizacaoCadastralHelper>();
map.put(item.getNomeColuna(), testes);
}
testes.add(item);
}
Collection<DadosTabelaAtualizacaoCadastralHelper> nova = new AtualizacaoCadastralUtil().linhasAtualizacaoCadastral(existentes, map);
return nova;
}
@Test
public void testaCargaSemAlteracaoAgua(){
Collection<DadosTabelaAtualizacaoCadastralHelper> existentes = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
List<DadosTabelaAtualizacaoCadastralHelper> lista = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
SituacaoAguaHelper sitAgua = new SituacaoAguaHelper("LIGADO");
existentes.add(sitAgua);
DadosTabelaAtualizacaoCadastralHelper helper = montaObjetos(existentes, lista).iterator().next();
StringBuilder campo = new StringBuilder();
campo.append(helper.getNomeColuna())
.append(";")
.append(helper.getColunaValorAnterior())
.append(";")
.append(helper.getColunaValorAtual());
assertEquals("last_id;LIGADO;LIGADO", campo.toString());
}
@Test
public void testaCargaComAlteracaoAgua(){
Collection<DadosTabelaAtualizacaoCadastralHelper> existentes = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
List<DadosTabelaAtualizacaoCadastralHelper> lista = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
SituacaoAguaHelper sitAgua = new SituacaoAguaHelper("LIGADO");
existentes.add(sitAgua);
DadosTabelaAtualizacaoCadastralHelper item = new DadosTabelaAtualizacaoCadastralHelper();
item.setColunaValorAnterior("LIGADO");
item.setColunaValorAtual("DESLIGADO");
item.setNomeColuna("last_id");
lista.add(item);
DadosTabelaAtualizacaoCadastralHelper helper = montaObjetos(existentes, lista).iterator().next();
StringBuilder campo = new StringBuilder();
campo.append(helper.getNomeColuna())
.append(";")
.append(helper.getColunaValorAnterior())
.append(";")
.append(helper.getColunaValorAtual());
assertEquals("last_id;LIGADO;DESLIGADO", campo.toString());
}
@Test
public void testaCargaSemAlteracaoAguaComAlteracaoEsgoto(){
Collection<DadosTabelaAtualizacaoCadastralHelper> existentes = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
List<DadosTabelaAtualizacaoCadastralHelper> lista = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
SituacaoAguaHelper sitAgua = new SituacaoAguaHelper("LIGADO");
SituacaoEsgotoHelper sitEsgo = new SituacaoEsgotoHelper("LIGADO");
existentes.add(sitAgua);
existentes.add(sitEsgo);
DadosTabelaAtualizacaoCadastralHelper item = new DadosTabelaAtualizacaoCadastralHelper();
item.setColunaValorAnterior("LIGADO");
item.setColunaValorAtual("DESLIGADO");
item.setNomeColuna("lest_id");
lista.add(item);
Collection<DadosTabelaAtualizacaoCadastralHelper> nova = montaObjetos(existentes, lista);
StringBuilder retorno = new StringBuilder();
for (DadosTabelaAtualizacaoCadastralHelper dado : nova) {
retorno.append("[").append(dado.getNomeColuna())
.append(";")
.append(dado.getColunaValorAnterior())
.append(";")
.append(dado.getColunaValorAtual())
.append("]");
}
assertEquals("[last_id;LIGADO;LIGADO][lest_id;LIGADO;DESLIGADO]", retorno.toString());
}
@Test
public void testaCargaSemAlteracaoSemAlteracaoEsgoto(){
Collection<DadosTabelaAtualizacaoCadastralHelper> existentes = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
List<DadosTabelaAtualizacaoCadastralHelper> lista = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
SituacaoAguaHelper sitAgua = new SituacaoAguaHelper("LIGADO");
SituacaoEsgotoHelper sitEsgo = new SituacaoEsgotoHelper("DESLIGADO");
existentes.add(sitAgua);
existentes.add(sitEsgo);
Collection<DadosTabelaAtualizacaoCadastralHelper> nova = montaObjetos(existentes, lista);
StringBuilder retorno = new StringBuilder();
for (DadosTabelaAtualizacaoCadastralHelper dado : nova) {
retorno.append("[").append(dado.getNomeColuna())
.append(";")
.append(dado.getColunaValorAnterior())
.append(";")
.append(dado.getColunaValorAtual())
.append("]");
}
assertEquals("[last_id;LIGADO;LIGADO][lest_id;DESLIGADO;DESLIGADO]", retorno.toString());
}
@Test
public void testaCargaSemAlteracaoCategoria(){
Collection<DadosTabelaAtualizacaoCadastralHelper> existentes = new LinkedList<DadosTabelaAtualizacaoCadastralHelper>();
List<DadosTabelaAtualizacaoCadastralHelper> lista = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
SituacaoSubcategoriaHelper sitSubcat = new SituacaoSubcategoriaHelper("4", "RESIDENCIAL - R2");
existentes.add(sitSubcat);
Collection<DadosTabelaAtualizacaoCadastralHelper> nova = montaObjetos(existentes, lista);
StringBuilder retorno = new StringBuilder();
for (DadosTabelaAtualizacaoCadastralHelper dado : nova) {
retorno.append("[").append(dado.getNomeColuna())
.append(";")
.append(dado.getColunaValorAnterior())
.append(";")
.append(dado.getColunaValorAtual())
.append("]");
}
assertEquals("[isac_qteconomia;4;4]", retorno.toString());
}
@Test
public void testaCargaComAlteracaoCategoria(){
Collection<DadosTabelaAtualizacaoCadastralHelper> existentes = new LinkedList<DadosTabelaAtualizacaoCadastralHelper>();
List<DadosTabelaAtualizacaoCadastralHelper> lista = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
SituacaoSubcategoriaHelper sitSubcat = new SituacaoSubcategoriaHelper("4", "RESIDENCIAL - R2");
existentes.add(sitSubcat);
DadosTabelaAtualizacaoCadastralHelper item = new DadosTabelaAtualizacaoCadastralHelper();
item.setColunaValorAnterior("4");
item.setColunaValorAtual("2");
item.setComplemento("RESIDENCIAL - R2");
item.setNomeColuna("isac_qteconomia");
lista.add(item);
Collection<DadosTabelaAtualizacaoCadastralHelper> nova = montaObjetos(existentes, lista);
StringBuilder retorno = new StringBuilder();
for (DadosTabelaAtualizacaoCadastralHelper dado : nova) {
retorno.append("[").append(dado.getNomeColuna())
.append(";")
.append(dado.getColunaValorAnterior())
.append(";")
.append(dado.getColunaValorAtual())
.append("]");
}
assertEquals("[isac_qteconomia;4;2]", retorno.toString());
}
@Test
public void testaCargaSemAlteracaoCategoriaComAddCategoria(){
Collection<DadosTabelaAtualizacaoCadastralHelper> existentes = new LinkedList<DadosTabelaAtualizacaoCadastralHelper>();
List<DadosTabelaAtualizacaoCadastralHelper> lista = new LinkedList<DadosTabelaAtualizacaoCadastralHelper>();
SituacaoSubcategoriaHelper sitSubcat = new SituacaoSubcategoriaHelper("4", "RESIDENCIAL - R2");
existentes.add(sitSubcat);
DadosTabelaAtualizacaoCadastralHelper item = new DadosTabelaAtualizacaoCadastralHelper();
item.setColunaValorAnterior("4");
item.setColunaValorAtual("2");
item.setComplemento("RESIDENCIAL - R1");
item.setNomeColuna("isac_qteconomia");
lista.add(item);
Collection<DadosTabelaAtualizacaoCadastralHelper> nova = montaObjetos(existentes, lista);
StringBuilder retorno = new StringBuilder();
for (DadosTabelaAtualizacaoCadastralHelper dado : nova) {
retorno.append("[").append(dado.getNomeColuna())
.append(";")
.append(dado.getColunaValorAnterior())
.append(";")
.append(dado.getColunaValorAtual())
.append(";")
.append(dado.getComplemento())
.append("]");
}
assertEquals("[isac_qteconomia;4;4;RESIDENCIAL - R2][isac_qteconomia;4;2;RESIDENCIAL - R1]", retorno.toString());
}
@Test
public void testaCargaSemAlteracaoCategoriaComDuasCategoriasExistentes(){
Collection<DadosTabelaAtualizacaoCadastralHelper> existentes = new LinkedList<DadosTabelaAtualizacaoCadastralHelper>();
List<DadosTabelaAtualizacaoCadastralHelper> lista = new LinkedList<DadosTabelaAtualizacaoCadastralHelper>();
existentes.add(new SituacaoSubcategoriaHelper("4", "RESIDENCIAL - R2"));
existentes.add(new SituacaoSubcategoriaHelper("1", "COMERCIAL - C2"));
DadosTabelaAtualizacaoCadastralHelper item = new DadosTabelaAtualizacaoCadastralHelper();
item.setColunaValorAnterior("4");
item.setColunaValorAtual("2");
item.setComplemento("RESIDENCIAL - R1");
item.setNomeColuna("isac_qteconomia");
lista.add(item);
Collection<DadosTabelaAtualizacaoCadastralHelper> nova = montaObjetos(existentes, lista);
StringBuilder retorno = new StringBuilder();
for (DadosTabelaAtualizacaoCadastralHelper dado : nova) {
retorno.append("[").append(dado.getNomeColuna())
.append(";")
.append(dado.getColunaValorAnterior())
.append(";")
.append(dado.getColunaValorAtual())
.append(";")
.append(dado.getComplemento())
.append("]");
}
assertEquals("[isac_qteconomia;4;4;RESIDENCIAL - R2][isac_qteconomia;1;1;COMERCIAL - C2][isac_qteconomia;4;2;RESIDENCIAL - R1]", retorno.toString());
}
@Test
public void testaCargaComESemAlteracaoCategoriaComDuasCategoriasExistentes(){
Collection<DadosTabelaAtualizacaoCadastralHelper> existentes = new LinkedList<DadosTabelaAtualizacaoCadastralHelper>();
List<DadosTabelaAtualizacaoCadastralHelper> lista = new LinkedList<DadosTabelaAtualizacaoCadastralHelper>();
existentes.add(new SituacaoSubcategoriaHelper("4", "RESIDENCIAL - R2"));
existentes.add(new SituacaoSubcategoriaHelper("1", "COMERCIAL - C2"));
DadosTabelaAtualizacaoCadastralHelper item = new DadosTabelaAtualizacaoCadastralHelper();
item.setColunaValorAnterior("4");
item.setColunaValorAtual("2");
item.setComplemento("RESIDENCIAL - R1");
item.setNomeColuna("isac_qteconomia");
lista.add(item);
item = new DadosTabelaAtualizacaoCadastralHelper();
item.setColunaValorAnterior("4");
item.setColunaValorAtual("2");
item.setComplemento("RESIDENCIAL - R2");
item.setNomeColuna("isac_qteconomia");
lista.add(item);
Collection<DadosTabelaAtualizacaoCadastralHelper> nova = montaObjetos(existentes, lista);
StringBuilder retorno = new StringBuilder();
for (DadosTabelaAtualizacaoCadastralHelper dado : nova) {
retorno.append("[").append(dado.getNomeColuna())
.append(";")
.append(dado.getColunaValorAnterior())
.append(";")
.append(dado.getColunaValorAtual())
.append(";")
.append(dado.getComplemento())
.append("]");
}
assertEquals("[isac_qteconomia;1;1;COMERCIAL - C2][isac_qteconomia;4;2;RESIDENCIAL - R2][isac_qteconomia;4;2;RESIDENCIAL - R1]", retorno.toString());
}
@Test
public void testaCargaComAlteracaoAguaEOutraColuna(){
Collection<DadosTabelaAtualizacaoCadastralHelper> existentes = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
List<DadosTabelaAtualizacaoCadastralHelper> lista = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>();
SituacaoAguaHelper sitAgua = new SituacaoAguaHelper("LIGADO");
existentes.add(sitAgua);
DadosTabelaAtualizacaoCadastralHelper item = new DadosTabelaAtualizacaoCadastralHelper();
item.setColunaValorAnterior("NOME");
item.setColunaValorAtual("SOBRENOME");
item.setNomeColuna("nome");
lista.add(item);
Collection<DadosTabelaAtualizacaoCadastralHelper> nova = montaObjetos(existentes, lista);
StringBuilder campo = new StringBuilder();
for (DadosTabelaAtualizacaoCadastralHelper helper : nova) {
campo.append("[").append(helper.getNomeColuna())
.append(";")
.append(helper.getColunaValorAnterior())
.append(";")
.append(helper.getColunaValorAtual())
.append("]");
}
assertEquals("[last_id;LIGADO;LIGADO][nome;NOME;SOBRENOME]", campo.toString());
}
}