/*
   * finalizarUnPedidoDeUnClient() consiste en la creacion, asignacion y posterior finalizacion
   * de un pedido, dos veces con lo cual se suma 6 veces dos tiempos distintos de finalizacion
   * por utlimo se calcula el promedio de atencion de Reparacion Simple comprobando que da el resultado
   * Deseado
   * */
  @Test // (expected = UnsupportedOperationException.class )
  public void finalizarUnPedidoDeUnClient() {
    Tiempo tiempoDeFinalizacion = new Tiempo().nuevoTiempo(10, 15);

    Pedido pedidoAgregar =
        builderPedido
            .armarPedidoBase(autoDePrueba)
            .addReparacionSimple()
            .addReparacionSimple()
            .addReparacionSimple()
            .build();

    clienteClassicSinDeuda.agregarPedido(pedidoAgregar);

    pedidoAgregar.finalizar(tiempoDeFinalizacion);

    tiempoDeFinalizacion = new Tiempo().nuevoTiempo(12, 15);

    clienteClassicSinDeuda.agregarPedido(pedidoAgregar);

    pedidoAgregar.finalizar(tiempoDeFinalizacion);

    assertTrue(
        Tiempo.sonTiemposIguales(
            pedidoAgregar.calcularTiempoDeAtencion(), new Tiempo().nuevoTiempo(11, 15)));
  }
  @Test
  public void testOK() throws ParseException {
    Date dataValidade = (Date) formatter.parse("2012-12-25");
    Date dataLimite = (Date) formatter.parse("2012-05-15");
    Pedido pedido = new Pedido(dataValidade, "12345", 500.0f, dataLimite);

    assertEquals("12345", pedido.getNumCartao());
    assertEquals(500.0f, pedido.getValor(), 0.00001f);

    assertEquals(dataValidade, pedido.getDataValidade());
    assertEquals(dataLimite, pedido.getDataLimite());
  }
  /*
   * finalizarUnPedidoBaseDeUnClient() consiste en la creacion, asignacion y posterior finalizacion
   * de un pedido base y se espera que el mismo tire la excepcion que no puede finalizarse.
   * */
  @Test
  public void finalizarUnPedidoBaseDeUnClient() {
    Tiempo tiempoDeFinalizacion = new Tiempo().nuevoTiempo(10, 15);

    Pedido pedidoAgregar =
        builderPedido.armarPedidoBase(autoDePrueba).addReparacionSimple().build();

    pedidoAgregar.finalizar(tiempoDeFinalizacion);

    assertTrue(
        Tiempo.sonTiemposIguales(
            pedidoAgregar.calcularTiempoDeAtencion(), tiempoDeFinalizacion.nuevoTiempo(10, 15)));
  }