Remember to Use .getValue()

The CER test code generator creates a Java interface for each rule class, and an accessor method on the interface for each rule attribute.

This generated accessor method returns a CER AttributeValue, not the attribute's value directly. To obtain the value itself, you must call the .getValue() method on the AttributeValue.

If you forget to use .getValue() in a test, then your test will probably compile fine but fail to behave correctly when it is run.

public void getValueNotUsed() {

    final FlexibleRetirementYear flexibleRetirementYear =
        FlexibleRetirementYear_Factory.getFactory().newInstance(
            session);

    flexibleRetirementYear.retirementCause().specifyValue(
        "Reached statutory retirement age.");

    /**
     * Will not work - ageAtRetirement() is a calculator, not a
     * value.
     *
     * JUnit will report the message:
     * junit.framework.AssertionFailedError: expected:<65> but
     * was: <Value: 65>
     *
     * Remember to use .getValue() on each attribute calculator!
     */
    assertEquals(65, flexibleRetirementYear.ageAtRetirement());

  }

Note that in this example, the value of the AttributeValue shows as the String "Value: 65", rather than the number 65 (which is what .getValue() would have returned).