@Test
  public void quitar() throws Exception {
    /*
     * Cria os parâmetros necessários para o serviço.
     */
    Conta conta = UtilsCrud.objectRetrieve(this.serviceManager, Conta.class, 1l, null);
    Contrato contrato = UtilsCrud.objectRetrieve(this.serviceManager, Contrato.class, 1l, null);
    Operacao operacao = UtilsCrud.objectRetrieve(this.serviceManager, Operacao.class, 1l, null);
    CentroCusto centroCusto =
        UtilsCrud.objectRetrieve(this.serviceManager, CentroCusto.class, 1l, null);
    ItemCusto itemCusto = UtilsCrud.objectRetrieve(this.serviceManager, ItemCusto.class, 1l, null);
    ClassificacaoContabil classificacaoContabil =
        UtilsCrud.objectRetrieve(this.serviceManager, ClassificacaoContabil.class, 1l, null);

    Calendar data = CalendarUtils.getCalendar(2007, Calendar.SEPTEMBER, 18);
    BigDecimal valor = DecimalUtils.TEN;

    Lancamento lancamento =
        UtilsLancamento.inserir(
            this.serviceManager,
            conta,
            contrato,
            data,
            data,
            "",
            operacao,
            Transacao.CREDITO,
            centroCusto,
            classificacaoContabil,
            itemCusto,
            valor,
            null,
            false,
            null);
    /*
     * Executa o serviço.
     */
    ServiceData sd = new ServiceData(QuitarLancamentoService.SERVICE_NAME, null);
    sd.getArgumentList().setProperty(QuitarLancamentoService.IN_CONTA, conta);
    sd.getArgumentList().setProperty(QuitarLancamentoService.IN_DATA, data);
    sd.getArgumentList().setProperty(QuitarLancamentoService.IN_LANCAMENTO, lancamento);
    sd.getArgumentList().setProperty(QuitarLancamentoService.IN_VALOR, valor);
    this.serviceManager.execute(sd);

    /*
     * Recarrega o lançamento para atualização.
     */
    lancamento =
        UtilsCrud.objectRetrieve(this.serviceManager, Lancamento.class, lancamento.getId(), null);

    lancamentoMovimento = (LancamentoMovimento) sd.getFirstOutput();
    assertEquals(conta.toString(), lancamentoMovimento.getConta().toString());
    assertEquals(data, lancamentoMovimento.getData());
    assertEquals(lancamento.toString(), lancamentoMovimento.getLancamento().toString());
    assertEquals(
        LancamentoMovimentoCategoria.QUITADO,
        lancamentoMovimento.getLancamentoMovimentoCategoria());
    assertEquals(valor, lancamentoMovimento.getValor());
    assertEquals(DecimalUtils.getBigDecimal(0), lancamento.getSaldo());
  }
  @Test
  public void testExecute() throws BusinessException {
    //		String documento = "04175308000129";
    String documento = "";
    Calendar dataInicial = CalendarUtils.getCalendar(2009, Calendar.MARCH, 1);
    Calendar dataFinal = CalendarUtils.getCalendar(2009, Calendar.MARCH, 31);
    //		List<ItemCusto> itemCustoList = UtilsCrud.objectList(this.serviceManager, ItemCusto.class,
    // "nome like 'Material%'", null);
    Situacao situacao = Situacao.TODOS;

    ServiceData sd = new ServiceData(ListarPosicaoContratoService.SERVICE_NAME, null);
    sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_DOCUMENTO_OPT, documento);
    sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_CONTA_LIST_OPT, new Long[0]);
    //		sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_ITEM_CUSTO_LIST_OPT,
    // itemCustoList);
    sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_DATA_INICIAL_OPT, dataInicial);
    sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_DATA_FINAL_OPT, dataFinal);
    sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_SITUACAO_OPT, situacao);
    this.serviceManager.execute(sd);

    List<Lancamento> list = sd.getFirstOutput();
    assertTrue(list.size() > 0);

    System.out.printf("%-6s ", "ID");
    System.out.printf("%-30s ", "Nome");
    System.out.printf("%-30s ", "Descrição");
    System.out.printf("%10s ", "Valor");
    System.out.println();
    //		System.out.println("------ ------------------------------ ");
    for (Lancamento lancamento : list) {
      System.out.printf("%6s ", lancamento.getId());
      System.out.printf("%-30s ", lancamento.getContrato().getPessoa().getNome());
      System.out.printf("%-30s ", lancamento.getDescricao());
      System.out.printf("%10.2f ", lancamento.getSaldo());
      System.out.println();
      //			System.out.println(
      //					lancamento.getId() + " | " +
      //					CalendarUtils.formatDate(lancamento.getData()) + " | " +
      //					lancamento.getLancamentoItens().get(0).getItemCusto());
    }
  }