Skip to content

Instantly share code, notes, and snippets.

@Stray
Created May 28, 2010 15:27
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Stray/417286 to your computer and use it in GitHub Desktop.
Save Stray/417286 to your computer and use it in GitHub Desktop.
package app.restricted.services {
import asunit.framework.TestCase;
import org.robotlegs.mvcs.Actor;
import mockolate.prepare;
import mockolate.nice;
import mockolate.stub;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.IEventDispatcher;
import flash.display.FrameLabel;
import flash.display.Sprite;
public class LessonXMLProcessorTest extends TestCase {
private var instance:LessonXMLProcessor;
public function LessonXMLProcessorTest(methodName:String=null) {
super(methodName)
}
override public function run():void{
var mockolateMaker:IEventDispatcher = prepare(MovieClip);
mockolateMaker.addEventListener(Event.COMPLETE, prepareCompleteHandler);
}
private function prepareCompleteHandler(e:Event):void{
super.run();
}
override protected function setUp():void {
super.setUp();
instance = new LessonXMLProcessor();
}
override protected function tearDown():void {
super.tearDown();
instance = null;
}
public function testInstantiated():void {
assertTrue("instance is LessonXMLProcessor", instance is LessonXMLProcessor);
}
public function testImplementsInterface():void {
assertTrue("instance is ILessonXMLProcessor", instance is ILessonXMLProcessor);
}
public function testIsService():void{
assertTrue("instance is robotlegs Actor", instance is Actor);
}
public function testFailure():void {
assertTrue("Failing test", true);
}
public function testCreatesALessonStructureVOs():void{
var lessonXML:XML = createDummyLessonXML();
var lessonsVector:Vector.<MovieClip> = createDummySwfs();
var result:LessonStructureVO = instance.processLessonXMLOnLessons(lessonXML,lessonsVector);
assertTrue("Returns correct number of LessonStructureVOs", result != null);
}
public function testLessonStructureVOHasCorrectSubsectionArray():void{
var lessonXML:XML = createDummyLessonXML();
var lessonsVector:Vector.<MovieClip> = createDummySwfs();
var result:LessonStructureVO = instance.processLessonXMLOnLessons(lessonXML,lessonsVector);
assertEqualsArrays("Subsection array matches for swf1", result.subsectionArray, [2,3,1]);
}
public function testLessonStructureVOHasCorrectSectionToSwfMap():void{
var lessonXML:XML = createDummyLessonXML();
var lessonsVector:Vector.<MovieClip> = createDummySwfs();
var result:LessonStructureVO = instance.processLessonXMLOnLessons(lessonXML,lessonsVector);
assertEqualsArrays("Subsection array matches", result.sectionToSwfMap, [1,2,2]);
}
public function testLessonStructureVOHasCorrectCheckpointTitles():void{
var lessonXML:XML = createDummyLessonXML();
var lessonsVector:Vector.<MovieClip> = createDummySwfs();
var result:LessonStructureVO = instance.processLessonXMLOnLessons(lessonXML,lessonsVector);
assertTrue("Checkpoint label 1_1 matches", result.checkpointLabelArray['section_1_1'] == 'Introduction');
assertTrue("Checkpoint label 1_2 matches", result.checkpointLabelArray['section_1_2'] == 'Introduction');
assertTrue("Checkpoint label 2_1 matches", result.checkpointLabelArray['section_2_1'] == 'Oil and Gas Development Types');
assertTrue("Checkpoint label 2_2 matches", result.checkpointLabelArray['section_2_2'] == 'Oil and Gas Development Types');
assertTrue("Checkpoint label 2_3 matches", result.checkpointLabelArray['section_2_3'] == 'Oil and Gas Development Types');
assertTrue("Checkpoint label 3_1 matches", result.checkpointLabelArray['section_3_1'] == 'Process / Flow Assurance Design Activities');
}
public function testLessonStructureVOHasCorrectSubsectionFrameDataVOStructure():void{
var lessonXML:XML = createDummyLessonXML();
var lessonsVector:Vector.<MovieClip> = createDummySwfs();
var result:LessonStructureVO = instance.processLessonXMLOnLessons(lessonXML,lessonsVector);
var subsectionFrameDataVector:Vector.<Vector.<SubsectionFrameDataVO> > = result.subsectionFrameDataVector;
assertTrue("LessonStructureVO subsection frame data vector is right length", subsectionFrameDataVector.length == 3);
assertTrue("First section vector is right length", subsectionFrameDataVector[0].length == 2);
assertTrue("Second section vector is right length", subsectionFrameDataVector[1].length == 3);
assertTrue("3rd section vector is right length", subsectionFrameDataVector[2].length == 1);
}
public function testLessonStructureVOHasCorrectSubsectionFrameDataVODetail():void{
var lessonXML:XML = createDummyLessonXML();
var lessonsVector:Vector.<MovieClip> = createDummySwfs();
var result:LessonStructureVO = instance.processLessonXMLOnLessons(lessonXML,lessonsVector);
var subsectionFrameDataVector:Vector.<Vector.<SubsectionFrameDataVO> > = result.subsectionFrameDataVector;
var subsectionFrameDataVO_1_1:SubsectionFrameDataVO = subsectionFrameDataVector[0][0];
var subsectionFrameDataVO_1_2:SubsectionFrameDataVO = subsectionFrameDataVector[0][1];
var subsectionFrameDataVO_2_1:SubsectionFrameDataVO = subsectionFrameDataVector[1][0];
var subsectionFrameDataVO_2_2:SubsectionFrameDataVO = subsectionFrameDataVector[1][1];
var subsectionFrameDataVO_2_3:SubsectionFrameDataVO = subsectionFrameDataVector[1][2];
var subsectionFrameDataVO_3_1:SubsectionFrameDataVO = subsectionFrameDataVector[2][0];
assertTrue("SubsectionFrameData has correct totalFrames", subsectionFrameDataVO_1_1.totalFrames == 80);
assertTrue("SubsectionFrameData has correct totalFrames", subsectionFrameDataVO_1_2.totalFrames == 100);
assertTrue("SubsectionFrameData has correct totalFrames", subsectionFrameDataVO_2_1.totalFrames == 50);
assertTrue("SubsectionFrameData has correct totalFrames", subsectionFrameDataVO_2_2.totalFrames == 50);
assertTrue("SubsectionFrameData has correct totalFrames", subsectionFrameDataVO_2_3.totalFrames == 50);
assertTrue("SubsectionFrameData has correct totalFrames", subsectionFrameDataVO_3_1.totalFrames == 100);
}
public function createDummySwfs():Vector.<MovieClip>{
var swf1:MovieClip = nice(MovieClip);
var swf2:MovieClip = nice(MovieClip);
var frameLabel_1_start:FrameLabel = new FrameLabel('section_start', 1);
var frameLabel_1_1:FrameLabel = new FrameLabel('section_1_1', 21);
var frameLabel_1_2:FrameLabel = new FrameLabel('section_1_2', 101);
var frameLabel_1_end:FrameLabel = new FrameLabel('segment_end', 201);
var currentLabels1:Array = [frameLabel_1_1, frameLabel_1_2, frameLabel_1_end];
stub(swf1).property("currentLabels").returns(currentLabels1);
var frameLabel_2_1:FrameLabel = new FrameLabel('section_2_1', 1);
var frameLabel_2_2:FrameLabel = new FrameLabel('section_2_2', 51);
var frameLabel_2_3:FrameLabel = new FrameLabel('section_2_3', 101);
var frameLabel_3_1:FrameLabel = new FrameLabel('section_3_1', 151);
var frameLabel_end:FrameLabel = new FrameLabel('section_end', 251);
var currentLabels2:Array = [frameLabel_2_1, frameLabel_2_2, frameLabel_2_3, frameLabel_3_1, frameLabel_end];
stub(swf2).property("currentLabels").returns(currentLabels2);
var lessonsVector:Vector.<MovieClip> = new Vector.<MovieClip>();
lessonsVector.push(swf1);
lessonsVector.push(swf2);
return lessonsVector;
}
public function createDummyLessonXML():XML{
var lessonXML:XML = <lessonData>
<totalSections>3</totalSections>
<totalSwfs>2</totalSwfs>
<swfData>
<swfID>1</swfID>
<firstSection>1</firstSection>
<lastSection>1</lastSection>
</swfData>
<swfData>
<swfID>2</swfID>
<firstSection>2</firstSection>
<lastSection>3</lastSection>
</swfData>
<sectionData>
<sectionID>1</sectionID>
<totalSubsections>2</totalSubsections>
<subsectionData>
<subsectionID>1</subsectionID>
<title_txt>Introduction</title_txt>
<endMessages>
<showContinueMessage>true</showContinueMessage>
<customContinueMessage></customContinueMessage>
<showPrintMessage>true</showPrintMessage>
<showDefinition></showDefinition>
<showSaveFile><![CDATA[]]></showSaveFile>
<saveFileName></saveFileName>
<showGenericMessage><![CDATA[]]></showGenericMessage>
</endMessages>
</subsectionData>
<subsectionData>
<subsectionID>2</subsectionID>
<title_txt>Introduction</title_txt>
<endMessages>
<showContinueMessage>true</showContinueMessage>
<customContinueMessage></customContinueMessage>
<showPrintMessage>false</showPrintMessage>
<showDefinition>Test Definition</showDefinition>
<showSaveFile><![CDATA[]]></showSaveFile>
<saveFileName></saveFileName>
<showGenericMessage><![CDATA[]]></showGenericMessage>
</endMessages>
</subsectionData>
</sectionData>
<sectionData>
<sectionID>2</sectionID>
<totalSubsections>3</totalSubsections>
<subsectionData>
<subsectionID>1</subsectionID>
<title_txt>Oil and Gas Development Types</title_txt>
<endMessages>
<showContinueMessage>true</showContinueMessage>
<customContinueMessage></customContinueMessage>
<showPrintMessage>false</showPrintMessage>
<showDefinition></showDefinition>
<showSaveFile><![CDATA[]]></showSaveFile>
<saveFileName></saveFileName>
<showGenericMessage><![CDATA[]]></showGenericMessage>
</endMessages>
</subsectionData>
<subsectionData>
<subsectionID>2</subsectionID>
<title_txt>Oil and Gas Development Types</title_txt>
<endMessages>
<showContinueMessage>true</showContinueMessage>
<customContinueMessage></customContinueMessage>
<showPrintMessage>true</showPrintMessage>
<showDefinition></showDefinition>
<showSaveFile><![CDATA[]]></showSaveFile>
<saveFileName></saveFileName>
<showGenericMessage><![CDATA[]]></showGenericMessage>
</endMessages>
</subsectionData>
<subsectionData>
<subsectionID>3</subsectionID>
<title_txt>Oil and Gas Development Types</title_txt>
<endMessages>
<showContinueMessage>true</showContinueMessage>
<customContinueMessage></customContinueMessage>
<showPrintMessage>true</showPrintMessage>
<showDefinition></showDefinition>
<showSaveFile><![CDATA[]]></showSaveFile>
<saveFileName></saveFileName>
<showGenericMessage><![CDATA[]]></showGenericMessage>
</endMessages>
</subsectionData>
</sectionData>
<sectionData>
<sectionID>3</sectionID>
<totalSubsections>1</totalSubsections>
<subsectionData>
<subsectionID>1</subsectionID>
<title_txt>Process / Flow Assurance Design Activities</title_txt>
<endMessages>
<showContinueMessage>true</showContinueMessage>
<customContinueMessage></customContinueMessage>
<showPrintMessage>false</showPrintMessage>
<showDefinition></showDefinition>
<showSaveFile><![CDATA[]]></showSaveFile>
<saveFileName></saveFileName>
<showGenericMessage><![CDATA[]]></showGenericMessage>
</endMessages>
</subsectionData>
</sectionData>
</lessonData>;
return lessonXML;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment