Ne pas oublier d'utiliser .getValue()

Le générateur de codes de test CER crée une interface Java pour chaque classe de règles et une méthode d'accès sur l'interface pour chaque attribut de règle.

Cette méthode d'accès générée retourne un attribut CER AttributeValue, et non la valeur de l'attribut directement. Pour obtenir la valeur proprement dite, vous devez appeler la méthode .getValue() sur l'attribut AttributeValue.

Si vous oubliez d'utiliser .getValue() dans un test, la compilation de votre test s'effectuera correctement, mais son exécution échouera.

public void getValueNotUsed() {

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

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

    /**
     * Ne fonctionne pas - ageAtRetirement() est un calculateur, et non une
     * valeur.
     *
     * JUnit indique le message suivant :
     * junit.framework.AssertionFailedError: expected:<65> but
     * was: <Value: 65>
     *
     * N'oubliez pas d'utiliser .getValue() sur chaque calculateur d'attribut !
     */
    assertEquals(65, flexibleRetirementYear.ageAtRetirement());

  }

Notez que dans cet exemple, la valeur AttributeValue est indiquée par la chaîne "Value: 65", et non par le nombre 65 (valeur que .getValue() aurait retournée).