edu.vub.at
Class OBJUnit

java.lang.Object
  extended byedu.vub.at.objects.natives.NATNil
      extended byedu.vub.at.OBJUnit
All Implemented Interfaces:
ATAbstractGrammar, ATConversions, ATExpression, ATNil, ATObject, ATStatement, java.io.Serializable

public class OBJUnit
extends NATNil

OBJUnit is a preliminary version of a unit test framework to be used in AmbientTalk. It contains a set of methods comparable to (and translated to) the methods offered by the JUnit framework.

Author:
smostinc
See Also:
Serialized Form

Field Summary
static OBJUnit _INSTANCE_
          Default instance : used in general to store in the at dictionary.
private  ATContext ctx_
           
 
Constructor Summary
private OBJUnit()
           
 
Method Summary
 NATNil base_assert_equals_(ATObject expected, ATObject actual)
           
 NATNil base_assert_evaluatesTo(ATText source, ATObject expected)
           
 NATNil base_assert_printsTo(ATText source, ATObject expected)
           
 NATNil base_echo_(ATObject message)
           
 NATNil base_fail_(NATText description)
           
 NATNil base_fail()
           
 NATNil base_success()
           
 ATObject base_unittest_(ATClosure code)
          The unittest: primitive, implemented as base-level code.
 ATObject meta_evaluate(ATText source)
           
 
Methods inherited from class edu.vub.at.objects.natives.NATNil
asAmbientTalkObject, asJavaClassUnderSymbiosis, asJavaObjectUnderSymbiosis, asNativeBoolean, asNativeException, asNativeFarReference, asNativeFraction, asNativeNumber, asNativeNumeric, asNativeTable, asNativeText, base__opeql__opeql_, base_asActorMirror, base_asAsyncMessage, base_asBegin, base_asBoolean, base_asClosure, base_asDefinition, base_asExpression, base_asFarReference, base_asField, base_asHandler, base_asMessage, base_asMessageCreation, base_asMethod, base_asMirror, base_asNumber, base_asSplice, base_asStatement, base_asStripe, base_asSymbol, base_asTable, base_asUnquoteSplice, base_asVariableAssignment, base_init, base_isBoolean, base_isCallFrame, base_isClosure, base_isFarReference, base_isMessageCreation, base_isMethod, base_isMirror, base_isSplice, base_isStripe, base_isSymbol, base_isTable, base_isUnquoteSplice, base_isVariableAssignment, base_new, createChild, equals, isAmbientTalkObject, isJavaObjectUnderSymbiosis, isNativeBoolean, isNativeField, isNativeText, meta_addField, meta_addMethod, meta_assignField, meta_assignVariable, meta_clone, meta_defineField, meta_doesNotUnderstand, meta_eval, meta_extend, meta_getDynamicParent, meta_getLexicalParent, meta_getStripes, meta_grabField, meta_grabMethod, meta_invoke, meta_isCloneOf, meta_isRelatedTo, meta_isStripedWith, meta_listFields, meta_listMethods, meta_lookup, meta_newInstance, meta_pass, meta_print, meta_quote, meta_receive, meta_resolve, meta_respondsTo, meta_select, meta_send, meta_share, readResolve, toString, writeReplace
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_INSTANCE_

public static final OBJUnit _INSTANCE_
Default instance : used in general to store in the at dictionary. New instances can be made using the unittest: constructor.


ctx_

private ATContext ctx_
Constructor Detail

OBJUnit

private OBJUnit()
Method Detail

base_echo_

public NATNil base_echo_(ATObject message)
                  throws InterpreterException
Throws:
InterpreterException

base_fail

public NATNil base_fail()

base_fail_

public NATNil base_fail_(NATText description)

base_success

public NATNil base_success()

base_assert_equals_

public NATNil base_assert_equals_(ATObject expected,
                                  ATObject actual)

meta_evaluate

public ATObject meta_evaluate(ATText source)

base_assert_evaluatesTo

public NATNil base_assert_evaluatesTo(ATText source,
                                      ATObject expected)

base_assert_printsTo

public NATNil base_assert_printsTo(ATText source,
                                   ATObject expected)

base_unittest_

public ATObject base_unittest_(ATClosure code)
                        throws InterpreterException
The unittest: primitive, implemented as base-level code. unit: expects to be passed a closure such that it can extract the correct scope to be used as the object's lexical parent. usage: unittest: { someCode } pseudo-implementation: { def obj := objectP.new(at.unit, mirrorOf(someCode).context.lexicalScope); mirrorOf(someCode).method.body.eval(contextP.new(obj, obj, at.unit)); obj }

Parameters:
code - a closure containing both the code with which to initialize the object and the new object's lexical parent
Returns:
a new object whose dynamic parent is NIL, whose lexical parent is the closure's lexical scope, initialized by the closure's code
Throws:
InterpreterException - if raised inside the code closure.