Une classe de valeur est une classe Java ou .Net contenant des données pouvant être utiles pour l'interaction. Une instance de classe de valeur peut être persistante et peut être comparée à d'autres instances de la même classe. Il s'agit d'une fonction de base commune à toutes les classes de valeur.
Cet exemple de code illustre une classe de valeur Java :
package sdk.sample.value; public class SimpleValue { String data = null; public SimpleValue(String data) { this.data = data; } public String getValue() { return this.data; } public String toString() { return "SimpleValue("+data+")"; } }
Cet exemple de code illustre une classe de valeur .Net :
using System; namespace SDK.Sample.Value { public class SimpleValue { private String data = null; public SimpleValue(String data) { this.data = data; } public String GetValue() { return this.data; } public override String ToString() { return "SimpleValue("+data+")"; } } }
Les gestionnaires de valeurs interagissent avec les classes de valeur de sorte que les objets de classe de valeur puissent être sérialisés, comparés et persistants. Vous pouvez ajouter dynamiquement des classes de gestionnaire de valeurs à l'ensemble de gestionnaires pris en charge. Une fois qu'un nouveau gestionnaire a été enregistré, les propriétés de la nouvelle classe de valeur prise en charge sont automatiquement exprimées dans l'ensemble de propriétés associé à un objet de test.
L'exemple de code suivant illustre un gestionnaire de valeurs Java :
package sdk.sample.value; import com.rational.test.ft.value.managers.*; public class SimpleValueManager implements IManageValueClass, IStringTableLookup { private static final String CLASSNAME = "sdk.sample.value.SimpleValue"; private static final String CANONICALNAME = ".simple_value"; private static final String DATA = "Data"; public void persistOut(Object theObject, IPersistOut persist, IAuxiliaryDataManager auxData) { SimpleValue simple = (SimpleValue)theObject; persist.write(DATA, simple.getValue()); } public Object persistIn(IPersistIn persist, IAuxiliaryDataManager auxData) { String data = (String)persist.read(0); return new SimpleValue(data); } public Object persistIn(IPersistInNamed persist, IAuxiliaryDataManager auxData) { String data = (String)persist.read(DATA); return new SimpleValue(data); } public int compare(Object left, Object right, ICompareValueClass nested) { if ( left == null || right == null ) return ( left == right ? 100 : 0 ); if ( !(right instanceof SimpleValue) ) return 0; SimpleValue l = (SimpleValue)left; SimpleValue r = (SimpleValue)right; return ( l.equals(r) ? 100 : 0 ); } public Object createValue(Object sourceToCopy) { if ( sourceToCopy instanceof SimpleValue ) return new SimpleValue(((SimpleValue)sourceToCopy).getValue()); return null; } public String getCanonicalName() { return CANONICALNAME; } public String getClassName() { return CLASSNAME; } public String doLookup(Object lookup) { String retVal = null; if (lookup instanceof SimpleValue && lookup != null) { retVal = com.rational.test.ft.services.StringTableService.getString( ((SimpleValue)lookup).getValue()); // Si identique, renvoyez la valeur null pour qu'il ne soit pas nécessaire de changer les données de point de vérification, etc. if (retVal == ((SimpleValue)lookup).getValue()) { retVal = null; } } return retVal; } }
Cet exemple de code illustre un gestionnaire de valeurs .Net :
using System; using Rational.Test.Ft.Value.Managers; namespace SDK.Sample.Value { public class SimpleValueManager: IManageValueClass { private const System.String CLASSNAME = "SDK.Sample.Value.SimpleValue"; private const System.String CANONICALNAME = ".simpe_value"; private const System.String DATA = "Data"; public virtual void PersistOut(System.Object theObject, IPersistOut persist, IAuxiliaryDataManager auxData) { SimpleValue simple = (SimpleValue)theObject; persist.Write(DATA, simple.GetValue()); } public virtual System.Object PersistIn(IPersistIn persist, IAuxiliaryDataManager auxData) { String data = (String)persist.Read(0); return new SimpleValue(data); } public virtual System.Object PersistIn(IPersistInNamed persist, IAuxiliaryDataManager auxData) { String data = (String)persist.Read(DATA); return new SimpleValue(data); } public virtual int Compare(System.Object left, System.Object right, ICompareValueClass nested) { if ( left == null || right == null ) return ( left == right ? 100 : 0 ); if ( !(right is SimpleValue) ) return 0; SimpleValue l = (SimpleValue)left; SimpleValue r = (SimpleValue)right; return ( l.Equals(r) ? 100 : 0 ); } public virtual System.Object CreateValue(System.Object sourceToCopy) { if ( sourceToCopy is SimpleValue ) return new SimpleValue(((SimpleValue)sourceToCopy).GetValue()); return null; } public virtual System.String GetCanonicalName() { return CANONICALNAME; } public virtual System.String GetClassName() { return CLASSNAME; } } }