@SuppressWarnings("deprecation")
  @Test
  public void testProcessarRegras() throws ApplicationException {
    List<LancamentoConta> lancamentosAProcessar = new ArrayList<LancamentoConta>();
    List<LancamentoConta> lancamentosProcessados = new ArrayList<LancamentoConta>();

    // Cadastra as regras que serão usadas
    for (int i = 0; i < 3; i++) {
      RegraImportacao r = EntityInitializerFactory.initializeRegraImportacao(conta);
      r.setTexto("Regra " + i);
      r.setIdCategoria(categoria.getId());
      r.setIdFavorecido(favorecido.getId());
      r.setIdMeioPagamento(meioPagamento.getId());
      regraImportacaoService.cadastrar(r);
    }

    // Gera os lançamentos a processar
    LancamentoConta lancamento = new LancamentoConta();
    lancamento.setDataPagamento(new Date());
    lancamento.setDescricao("Lançamento de Teste Regra 2");

    lancamentosAProcessar.addAll(lancamento.clonarLancamentos(3, IncrementoClonagemLancamento.DIA));

    lancamentosProcessados = regraImportacaoService.processarRegras(conta, lancamentosAProcessar);

    int i = 0;

    for (LancamentoConta processado : lancamentosProcessados) {
      for (LancamentoConta aProcessar : lancamentosAProcessar) {
        if (aProcessar.getDataPagamento().equals(processado.getDataPagamento())) {
          assertEquals(categoria.getId(), processado.getCategoria().getId());
          assertEquals(favorecido.getId(), processado.getFavorecido().getId());
          assertEquals(meioPagamento.getId(), processado.getMeioPagamento().getId());
        }
      }
      i++;
    }

    assertEquals(3, i);
  }
  @Test
  public void testProcessarRegrasSemRegrasCadastradas() throws ApplicationException {
    List<LancamentoConta> lancamentosAProcessar = new ArrayList<LancamentoConta>();
    List<LancamentoConta> lancamentosProcessados = new ArrayList<LancamentoConta>();

    // Gera os lançamentos a processar
    LancamentoConta lancamento = new LancamentoConta();
    lancamento.setDataPagamento(new Date());
    lancamento.setDescricao("Lançamento de Teste Regra 2");

    lancamentosAProcessar.addAll(lancamento.clonarLancamentos(3, IncrementoClonagemLancamento.DIA));

    lancamentosProcessados = regraImportacaoService.processarRegras(conta, lancamentosAProcessar);

    for (LancamentoConta processado : lancamentosProcessados) {
      for (LancamentoConta aProcessar : lancamentosAProcessar) {
        if (aProcessar.getDataPagamento().equals(processado.getDataPagamento())) {
          assertNull(processado.getCategoria());
          assertNull(processado.getFavorecido());
          assertNull(processado.getMeioPagamento());
        }
      }
    }
  }