From: Jeff M. <cus...@us...> - 2002-12-31 13:40:05
|
Update of /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects In directory sc8-pr-cvs1:/tmp/cvs-serv16525/src/core/com/mockobjects Added Files: ReturnValue.java Log Message: Added ReturnValue class --- NEW FILE: ReturnValue.java --- package com.mockobjects; import com.mockobjects.util.AssertMo; import com.mockobjects.util.Null; /** * <p>The ReturnValue class allows a value to be setup which will then be returned upon a specific * method call. If </code>value.getValue()</code> is called before <code>value.setValue(value)</code> * the ReturnValue will raise an error warning that this value has not been set. If the required * return value is <code>null</code> the return value can be set like this * <code>value.setValue(null)</code> in this case calling <code>value.getValue()</code> * will return null.<p> * * <p>The advantage of this is provide better information to the user of a mock when * interacting with third party code which may expect certain values to have been set.</p> * * e.g. * <pre> * private final ReturnValue value = new ReturnValue("value"); * * public void setupValue(Integer value){ * value.setValue(value); * } * * public Integer getValue(){ * return (Integer)value.getValue(); * } * </pre> * @version $Revision: 1.1 $ */ public class ReturnValue { private final String name; private Object value; /** * @param name the name used to identify the ReturnValue when an error is raised */ public ReturnValue(String name) { this.name = name; } /** * @return the value set using setValue * @exception junit.framework.AssertionFailedError throw if setValue has not been called */ public Object getValue() { AssertMo.assertNotNull("The return value \"" + name + "\" has not been set.", value); if(value instanceof Null){ return null; } return value; } /** * * @param value value to be returned be getValue. null can be use to force getValue to return null. */ public void setValue(Object value) { if(value==null){ value = Null.NULL; }else{ this.value = value; } } } |