Una clase de valor es una clase Java o .Net que contiene datos con los que puede ser útil interactuar. Una instancia de una clase de valor puede perdurar y compararse con otras instancias de la misma clase. Ésta es una capacidad básica de todas las clases de valor.
En este ejemplo de código se muestra una clase de valor 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+")"; } }
En este ejemplo de código se muestra una clase de valor .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+")"; } } }
Los gestores de valores interactúan con las clases de valor para que los objetos de clases de valor puedan serializarse y comprarse y convertirse en permanentes. Las clases de gestor de valores se pueden añadir dinámicamente al conjunto de gestores admitido. Después de registrar un nuevo gestor, todas las propiedades de la nueva clase de valor admitida se expresan automáticamente en el conjunto de propiedades asociado con un objeto de prueba.
Este código de ejemplo muestra un gestor de valores 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()); // If they are the same return null so we won't bother changing VP data, etc. if (retVal == ((SimpleValue)lookup).getValue()) { retVal = null; } } return retVal; } }
Este ejemplo de código muestra un gestor de clases .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; } } }