package tests
{
import mx.rpc.remoting.RemoteObject;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent
import mx.rpc.events.FaultEvent
import mx.controls.List;
public class ArrayOfPrimitivesTest
{
private var summaryObj:Array;
private var remotePrimitiveTest:RemoteObject;
private var application:Object;
private var arrayObj:Array;
public function ArrayOfPrimitivesTest(application:Object)
{
this.summaryObj = new Array();
this.application = application;
remotePrimitiveTest = new RemoteObject();
remotePrimitiveTest.destination = "PrimitiveArrayTest";
remotePrimitiveTest.addEventListener("fault", onFault);
remotePrimitiveTest.echoIntArray.addEventListener("result", echoIntArray_Result);
remotePrimitiveTest.echoLongArray.addEventListener("result", echoLongArray_Result);
remotePrimitiveTest.echoShortArray.addEventListener("result", echoShortArray_Result);
remotePrimitiveTest.echoDoubleArray.addEventListener("result", echoDoubleArray_Result);
remotePrimitiveTest.echoByteArray.addEventListener("result", echoByteArray_Result);
remotePrimitiveTest.echoBooleanArray.addEventListener("result", echoBooleanArray_Result);
remotePrimitiveTest.echoFloatArray.addEventListener("result", echoFloatArray_Result);
remotePrimitiveTest.echoEmptyArray.addEventListener("result", echoEmptyArray_Result);
remotePrimitiveTest.echoNullArray.addEventListener("result", echoNullArray_Result);
remotePrimitiveTest.getArrayObject.addEventListener("result", getArrayObject_Result);
}
public function onFault (event:FaultEvent):void
{
Alert.show(event.fault.faultString, 'Error');
}
public function runPrimitiveArraysTests():void
{
summaryObj = new Array();
arrayObj = ComplexType.getArray( 2 );
remotePrimitiveTest.echoIntArray( arrayObj );
remotePrimitiveTest.echoLongArray( arrayObj );
remotePrimitiveTest.echoShortArray( arrayObj );
remotePrimitiveTest.echoDoubleArray( arrayObj );
remotePrimitiveTest.echoByteArray( arrayObj );
remotePrimitiveTest.echoBooleanArray( arrayObj );
remotePrimitiveTest.echoFloatArray( arrayObj );
remotePrimitiveTest.echoEmptyArray( new Array() );
remotePrimitiveTest.echoNullArray( null );
remotePrimitiveTest.getArrayObject( arrayObj );
}
private function echoIntArray_Result( event:ResultEvent ):void
{
testArray(event, "echoIntArray");
}
private function echoLongArray_Result( event:ResultEvent ):void
{
testArray(event, "echoLongArray");
}
private function echoShortArray_Result( event:ResultEvent ):void
{
testArray(event, "echoShortArray");
}
private function echoDoubleArray_Result( event:ResultEvent ):void
{
testArray(event, "echoDoubleArray");
}
private function echoByteArray_Result( event:ResultEvent ):void
{
testArray(event, "echoByteArray");
}
private function echoBooleanArray_Result( event:ResultEvent ):void
{
testArray(event, "echoBooleanArray");
}
private function echoFloatArray_Result( event:ResultEvent ):void
{
testArray(event, "echoFloatArray");
}
private function getArrayObject_Result( event:ResultEvent ):void
{
testArray(event, "getArrayObject");
}
private function echoEmptyArray_Result( event:ResultEvent ):void
{
var resultArray:Array = event.result as Array;
if(resultArray != null && resultArray.length == 0 )
summaryObj.push( "success: primitive array test - echoEmptyArray" );
else
summaryObj.push( "failure: primitive array test - echoEmptyArray" );
}
private function echoNullArray_Result( event:ResultEvent ):void
{
if( event.result == null )
summaryObj.push( "success: primitive array test - echoNullArray" );
else
summaryObj.push( "failure: primitive array test - echoNullArray" );
application.setSummary( summaryObj );
}
public function testArray( event:ResultEvent, test:String ):void
{
var resultArray:Array = event.result as Array;
var outcome:Boolean = resultArray.length == arrayObj.length;
if( !outcome )
{
summaryObj.push( "failure: " + test + ", arrays different length, sent: " + arrayObj.length.toString() + " received: " + resultArray.length.toString() );
return;
}
for( var i:Number = 0; i < resultArray.length; i++ )
{
if( resultArray[i] != arrayObj[i] )
outcome = false;
}
if( outcome )
summaryObj.push( "success: primitive array test - " + test );
else
summaryObj.push( "failure: primitive array test - " + test );
}
}
}