/**
   * This test makes sure that the {@link Order#isDiscontinued()} is the one getting called instead
   * of a method like {@link Order#getDiscontinued()}. The latter was using the date object and
   * looking at several attributes at one point instead of looking at the boolean 'discontinued'
   * attribute.
   *
   * @throws ELException
   */
  @Test
  public void getDiscontinued_shouldGetDiscontinuedProperty() throws ELException {
    Order order = new Order();
    MockPageContext pageCtxt = new MockPageContext();
    pageCtxt.setAttribute("order", order);
    ExpressionEvaluator evtr = pageCtxt.getExpressionEvaluator();

    order.setDiscontinued(true);
    Object result = evtr.evaluate("${order.discontinued}", Boolean.class, null, null);
    Assert.assertNotNull(result);
    Assert.assertTrue(result instanceof Boolean);
    Assert.assertTrue((Boolean) result);

    order.setDiscontinued(false);
    result = evtr.evaluate("${order.discontinued}", Boolean.class, null, null);
    Assert.assertNotNull(result);
    Assert.assertTrue(result instanceof Boolean);
    Assert.assertFalse((Boolean) result);
  }