Created
May 28, 2010 15:27
-
-
Save Stray/417286 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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