/**
* Catroid: An on-device visual programming system for Android devices
* Copyright (C) 2010-2014 The Catrobat Team
* (<http://developer.catrobat.org/credits>)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* An additional term exception under section 7 of the GNU Affero
* General Public License, version 3, is available at
* http://developer.catrobat.org/license_additional_term
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.catrobat.html5player.client;
import org.catrobat.html5player.client.bricks.*;
import org.catrobat.html5player.client.common.Look;
import org.catrobat.html5player.client.scripts.BroadcastScript;
import org.catrobat.html5player.client.scripts.StartScript;
import org.catrobat.html5player.client.scripts.WhenScript;
import com.google.gwt.canvas.client.Canvas;
import com.google.gwt.junit.client.GWTTestCase;
import com.google.gwt.user.client.ui.TextArea;
public class ParserTest extends GWTTestCase {
private Stage stage;
private Scene scene;
private String xmlStringRumpBegin;
private String xmlStringRumpEnd;
private String projectName = "TestProject";
private int screenHeight = 480;
private int screenWidth = 320;
SpriteManager spriteManager;
public ParserTest() {
stage = Stage.getInstance();
scene = Scene.get();
spriteManager = stage.getSpriteManager();
xmlStringRumpBegin = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<program>" +
"<header>" +
"<applicationBuildName></applicationBuildName>" +
"<applicationBuildNumber>0</applicationBuildNumber>" +
"<applicationName>Catroid</applicationName>" +
"<applicationVersion>0.7.0beta</applicationVersion>" +
"<catrobatLanguageVersion>0.6</catrobatLanguageVersion>" +
"<deviceName>GT-S5830</deviceName>" +
"<programName>" + projectName + "</programName>" +
"<screenHeight>" + screenHeight + "</screenHeight>" +
"<screenWidth>" + screenWidth + "</screenWidth>"+
"</header>";
xmlStringRumpEnd = "</program>";
}
@Override
public String getModuleName() {
return "org.catrobat.html5player.html5player";
}
public void gwtSetUp() {
scene.createScene(100, 100);
Canvas canvas = scene.getCanvas();
stage.setCanvas(canvas);
TextArea logBox = new TextArea();
logBox.setSize("400px", "10px");
logBox.setVisible(false);
stage.setLogBox(logBox);
}
public void gwtTearDown() {
stage.setCanvas(null);
stage.setLogBox(null);
stage.clearStage();
spriteManager.reset();
}
//--------------------------------------------------------------------------
/**
* Helper
* @param filename
* @param name
* @return xml string of <look> Node
*/
public String lookXMLString(String filename, String name) {
return "<look>" +
"<fileName>" + filename + "</fileName>" +
"<name>" + name + "</name>" +
"</look>";
}
//--------------------------------------------------------------------------
/**
*
*/
public void testParseXMLScreenResolution() {
String xmlString = xmlStringRumpBegin + "<objectList></objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Canvas rootCanvas = stage.getCanvas();
assertEquals(screenHeight, rootCanvas.getCoordinateSpaceHeight());
assertEquals(screenWidth, rootCanvas.getCoordinateSpaceWidth());
}
/**
*
*/
public void testParseXMLSpriteWithlooks() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String fileNamelook2 = "92382349283_look2";
String lookName2 = "look2";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
lookXMLString(fileNamelook2, lookName2) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList/>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite instanceof Sprite);
assertEquals(2, sprite.getLooks().size());
Look look1 = sprite.getLook(lookName);
Look look2 = sprite.getLook(lookName2);
assertNotNull(look1);
assertNotNull(look2);
assertEquals(fileNamelook, look1.getLookData().getFilename());
assertEquals(fileNamelook2, look2.getLookData().getFilename());
}
//##########################################################################
/**
*
*/
public void testParseXMLStartScriptOneBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String fileNamelook2 = "92382349283_look2";
String lookName2 = "look2";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
lookXMLString(fileNamelook2, lookName2) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setLookBrick>" +
"<look reference=\"../../../../../lookList/look\"/>" +
"<object reference=\"../../../../..\"/>" +
"</setLookBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertEquals(1, sprite.getNumberOfScripts());
assertTrue(sprite.getScript(0) instanceof StartScript);
assertEquals(1, sprite.getScript(0).getBrickList().size());
assertTrue(sprite.getScript(0).getBrick(0) instanceof SetLookBrick);
}
/**
*
*/
public void testParseXMLMultipleStartScriptsWithOneBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String fileNamelook2 = "92382349283_look2";
String lookName2 = "look2";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
lookXMLString(fileNamelook2, lookName2) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setLookBrick>" +
"<look reference=\"../../../../../lookList/look\"/>" +
"<object reference=\"../../../../..\"/>" +
"</setLookBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"<startScript>" +
"<brickList>" +
"<setLookBrick>" +
"<look reference=\"../../../../../lookList/look\"/>" +
"<object reference=\"../../../../..\"/>" +
"</setLookBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertEquals(2, sprite.getNumberOfScripts());
assertTrue(sprite.getScript(0) instanceof StartScript);
assertTrue(sprite.getScript(1) instanceof StartScript);
assertEquals(1, sprite.getScript(0).getBrickList().size());
assertEquals(1, sprite.getScript(1).getBrickList().size());
assertTrue(sprite.getScript(0).getBrick(0) instanceof SetLookBrick);
assertTrue(sprite.getScript(1).getBrick(0) instanceof SetLookBrick);
}
/**
*
*/
public void testParseXMLWhenScriptOneBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String fileNamelook2 = "92382349283_look2";
String lookName2 = "look2";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
lookXMLString(fileNamelook2, lookName2) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<whenScript>" +
"<brickList>" +
"<setLookBrick>" +
"<look reference=\"../../../../../lookList/look\"/>" +
"<object reference=\"../../../../..\"/>" +
"</setLookBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"<action>Tapped</action>" +
"</whenScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertEquals(1, sprite.getNumberOfScripts());
assertTrue(sprite.getScript(0) instanceof WhenScript);
assertEquals(1, sprite.getScript(0).getBrickList().size());
assertTrue(sprite.getScript(0).getBrick(0) instanceof SetLookBrick);
}
/**
*
*/
public void testParseXMLMultipleWhenScriptsWithOneBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String fileNamelook2 = "92382349283_look2";
String lookName2 = "look2";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
lookXMLString(fileNamelook2, lookName2) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<whenScript>" +
"<brickList>" +
"<setLookBrick>" +
"<look reference=\"../../../../../lookList/look\"/>" +
"<object reference=\"../../../../..\"/>" +
"</setLookBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"<action>Tapped</action>" +
"</whenScript>" +
"<whenScript>" +
"<brickList>" +
"<setLookBrick>" +
"<look reference=\"../../../../../lookList/look\"/>" +
"<object reference=\"../../../../..\"/>" +
"</setLookBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"<action>Tapped</action>" +
"</whenScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertEquals(2, sprite.getNumberOfScripts());
assertTrue(sprite.getScript(0) instanceof WhenScript);
assertTrue(sprite.getScript(1) instanceof WhenScript);
assertEquals(1, sprite.getScript(0).getBrickList().size());
assertEquals(1, sprite.getScript(1).getBrickList().size());
assertTrue(sprite.getScript(0).getBrick(0) instanceof SetLookBrick);
assertTrue(sprite.getScript(1).getBrick(0) instanceof SetLookBrick);
}
/**
*
*/
public void testParseXMLBroadcastScriptWithOneBrick() {
String receivedMessage = "Next";
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String fileNamelook2 = "92382349283_look2";
String lookName2 = "look2";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
lookXMLString(fileNamelook2, lookName2) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<broadcastScript>" +
"<brickList>" +
"<hideBrick>" +
"<object reference=\"../../../../..\"/>" +
"</hideBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"<receivedMessage>" + receivedMessage + "</receivedMessage>" +
"</broadcastScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertEquals(1, sprite.getNumberOfScripts());
assertTrue(sprite.getScript(0) instanceof BroadcastScript);
BroadcastScript broadcastScript = (BroadcastScript)sprite.getScript(0);
assertEquals(receivedMessage, broadcastScript.getBroadcastMessage());
assertEquals(1, sprite.getScript(0).getBrickList().size());
assertTrue(sprite.getScript(0).getBrick(0) instanceof HideBrick);
}
/**
*
*/
public void testParseXMLMultipleBroadcastScriptsWithOneBrick() {
String receivedMessage = "Next";
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String fileNamelook2 = "92382349283_look2";
String lookName2 = "look2";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
lookXMLString(fileNamelook2, lookName2) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<broadcastScript>" +
"<brickList>" +
"<hideBrick>" +
"<object reference=\"../../../../..\"/>" +
"</hideBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"<receivedMessage>" + receivedMessage + "</receivedMessage>" +
"</broadcastScript>" +
"<broadcastScript>" +
"<brickList>" +
"<hideBrick>" +
"<object reference=\"../../../../..\"/>" +
"</hideBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"<receivedMessage>" + receivedMessage + "</receivedMessage>" +
"</broadcastScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertEquals(2, sprite.getNumberOfScripts());
assertTrue(sprite.getScript(0) instanceof BroadcastScript);
assertTrue(sprite.getScript(1) instanceof BroadcastScript);
BroadcastScript broadcastScript = (BroadcastScript)sprite.getScript(0);
BroadcastScript broadcastScript2 = (BroadcastScript)sprite.getScript(1);
assertEquals(receivedMessage, broadcastScript.getBroadcastMessage());
assertEquals(receivedMessage, broadcastScript2.getBroadcastMessage());
assertEquals(1, sprite.getScript(0).getBrickList().size());
assertEquals(1, sprite.getScript(1).getBrickList().size());
assertTrue(sprite.getScript(0).getBrick(0) instanceof HideBrick);
assertTrue(sprite.getScript(1).getBrick(0) instanceof HideBrick);
}
/**
*
*/
public void testParseXMLAllScripts() {
String receivedMessage = "Next";
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String fileNamelook2 = "92382349283_look2";
String lookName2 = "look2";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
lookXMLString(fileNamelook2, lookName2) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setLookBrick>" +
"<look reference=\"../../../../../lookList/look\"/>" +
"<object reference=\"../../../../..\"/>" +
"</setLookBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"<whenScript>" +
"<brickList>" +
"<setLookBrick>" +
"<look reference=\"../../../../../lookList/look\"/>" +
"<object reference=\"../../../../..\"/>" +
"</setLookBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"<action>Tapped</action>" +
"</whenScript>" +
"<broadcastScript>" +
"<brickList>" +
"<hideBrick>" +
"<object reference=\"../../../../..\"/>" +
"</hideBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"<receivedMessage>" + receivedMessage + "</receivedMessage>" +
"</broadcastScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertEquals(3, sprite.getNumberOfScripts());
assertTrue(sprite.getScript(0) instanceof StartScript);
assertTrue(sprite.getScript(1) instanceof WhenScript);
assertTrue(sprite.getScript(2) instanceof BroadcastScript);
assertEquals(1, sprite.getScript(0).getBrickList().size());
assertEquals(1, sprite.getScript(1).getBrickList().size());
assertEquals(1, sprite.getScript(2).getBrickList().size());
assertTrue(sprite.getScript(0).getBrick(0) instanceof SetLookBrick);
assertTrue(sprite.getScript(1).getBrick(0) instanceof SetLookBrick);
assertTrue(sprite.getScript(2).getBrick(0) instanceof HideBrick);
}
//##########################################################################
/*
* Parser:
* - Bricks:
* (x) no test
* (o) tested
* (-) not in parser
*
* Setlook (o)
* WaitBrick (o)
* PlaySound (x)
* ChangeVolumeBy (o)
* SetVolumeTo (o)
* PlaceAt (o)
* ChangeSizeByN (o)
* SetY (o)
* SetX (o)
* ChangeXBy (o)
* ChangeYBy (o)
* Hide (o)
* Show (o)
* StopAllSounds (o)
* TurnLeft (o)
* TurnRight (o)
* PointInDirection (o)
* GoNStepsBack (o)
* ComeToFront (o)
* GlideTo (o)
* SetSizeTo (o)
* Broadcast (o)
* BroadcastWait (o)
* MoveNSteps (o)
* Nextlook (o)
* Repeat (o)
* Forever (o)
* LoopEnd (o)
* Note (o)
* SetGhostEffect (o)
* ChangeGhostEffect (o)
* IfOnEdgeBounce (o)
* PointTo (o)
* ClearGraphicEffect (o)
* SetBrightness (o)
* ChangeBrightness (o)
*
*/
//##########################################################################
/**
*
*/
public void testParseXMLsetLookBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setLookBrick>" +
"<look reference=\"../../../../../lookList/look\"/>" +
"<object reference=\"../../../../..\"/>" +
"</setLookBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof SetLookBrick);
}
/**
*
*/
public void testParseXMLWaitBrick() {
double timeToWait = 1.0;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<waitBrick>" +
"<object reference=\"../../../../..\"/>" +
"<timeToWaitInSeconds>" +
"<formulaTree>"+
"<type>NUMBER</type>"+
"<value>"+timeToWait+"</value>"+
"</formulaTree>"+
"</timeToWaitInSeconds>" +
"</waitBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof WaitBrick);
}
/**
*
*/
public void testParseXMLPlaceAtBrick() {
int xPosition = 0;
int yPosition = 0;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<placeAtBrick>" +
"<object reference=\"../../../../..\"/>" +
"<xPosition>" + xPosition + "</xPosition>" +
"<yPosition>" + yPosition + "</yPosition>" +
"</placeAtBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof PlaceAtBrick);
}
/**
*
*/
public void testParseXMLChangeSizeByNBrick() {
int size = 10;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<changeSizeByNBrick>" +
"<size>" + size + "</size>" +
"<object reference=\"../../../../..\"/>" +
"</changeSizeByNBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof ChangeSizeByNBrick);
}
/**
*
*/
public void testParseXMLSetYBrick() {
int yPosition = 10;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setYBrick>" +
"<object reference=\"../../../../..\"/>" +
"<yPosition>" + yPosition + "</yPosition>" +
"</setYBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof SetYBrick);
}
/**
*
*/
public void testParseXMLSetXBrick() {
int xPosition = 10;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setXBrick>" +
"<object reference=\"../../../../..\"/>" +
"<xPosition>" + xPosition + "</xPosition>" +
"</setXBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof SetXBrick);
}
/**
*
*/
public void testParseXMLHideBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<hideBrick>" +
"<object reference=\"../../../../..\"/>" +
"</hideBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof HideBrick);
}
/**
*
*/
public void testParseXMLShowBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<showBrick>" +
"<object reference=\"../../../../..\"/>" +
"</showBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof ShowBrick);
}
/**
*
*/
public void testParseXMLMoveNStepsBrick() {
double steps = 50.0;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<moveNStepsBrick>" +
"<object reference=\"../../../../..\"/>" +
"<steps>" + steps + "</steps>" +
"</moveNStepsBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof MoveNStepsBrick);
}
/**
*
*/
public void testParseXMLGoNStepsBackBrick() {
int steps = 3;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<goNStepsBackBrick>" +
"<object reference=\"../../../../..\"/>" +
"<steps>" +
"<formulaTree>"+
"<type>NUMBER</type>"+
"<value>"+steps+"</value>"+
"</formulaTree>"+
"</steps>" +
"</goNStepsBackBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof GoNStepsBackBrick);
}
/**
*
*/
public void testParseXMLComeToFrontBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<comeToFrontBrick>" +
"<object reference=\"../../../../..\"/>" +
"</comeToFrontBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof ComeToFrontBrick);
}
/**
*
*/
public void testParseXMLGlideToBrick() {
int duration = 100;
int xDestination = 800;
int yDestination = 0;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<glideToBrick>" +
"<durationInSeconds>" + duration + "</durationInSeconds>" +
"<object reference=\"../../../../..\"/>" +
"<xDestination>" + xDestination + "</xDestination>" +
"<yDestination>" + yDestination + "</yDestination>" +
"</glideToBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof GlideToBrick);
}
/**
*
*/
public void testParseXMLChangeXByNBrick() {
int xMovement = 100;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<changeXByNBrick>" +
"<object reference=\"../../../../..\"/>" +
"<xMovement>" + xMovement + "</xMovement>" +
"</changeXByNBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof ChangeXByBrick);
}
/**
*
*/
public void testParseXMLChangeYByNBrick() {
int yMovement = 100;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<changeYByNBrick>" +
"<object reference=\"../../../../..\"/>" +
"<yMovement>" + yMovement + "</yMovement>" +
"</changeYByNBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof ChangeYByBrick);
}
/**
*
*/
public void testParseXMLTurnLeftBrick() {
double degrees = 10.0;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<turnLeftBrick>" +
"<object reference=\"../../../../..\"/>" +
"<degrees>" + degrees + "</degrees>" +
"</turnLeftBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof TurnLeftBrick);
}
/**
*
*/
public void testParseXMLTurnRightBrick() {
double degrees = 10.0;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<turnRightBrick>" +
"<object reference=\"../../../../..\"/>" +
"<degrees>" + degrees + "</degrees>" +
"</turnRightBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof TurnRightBrick);
}
/**
*
*/
public void testParseXMLPointInDirectionBrick() {
double degrees = 10.0;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<pointInDirectionBrick>" +
"<object reference=\"../../../../..\"/>" +
"<degrees>" + degrees + "</degrees>" +
"</pointInDirectionBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof PointInDirectionBrick);
}
/**
*
*/
public void testParseXMLSetSizeToBrick() {
double size = 100.0;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setSizeToBrick>" +
"<size>" + size + "</size>" +
"<object reference=\"../../../../..\"/>" +
"</setSizeToBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof SetSizeToBrick);
}
/**
*
*/
public void testParseXMLSetVolumeToBrick() {
double volume = 10.0;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setVolumeToBrick>" +
"<object reference=\"../../../../..\"/>" +
"<volume>" +
"<formulaTree>"+
"<type>NUMBER</type>"+
"<value>"+volume+"</value>"+
"</formulaTree>"+
"</volume>" +
"</setVolumeToBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof SetVolumeToBrick);
}
/**
*
*/
public void testParseXMLChangeVolumeByNBrick() {
double volume = 25.0f;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<changeVolumeByNBrick>" +
"<object reference=\"../../../../..\"/>" +
"<volume>" + volume + "</volume>" +
"</changeVolumeByNBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof ChangeVolumeByBrick);
}
/**
*
*/
public void testParseXMLNextlookBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<nextLookBrick>" +
"<object reference=\"../../../../..\"/>" +
"</nextLookBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof NextLookBrick);
}
/**
*
*/
public void testParseXMLPlaySoundBrick() {
/* String soundFileName = "68223C25ABEFABA96FD2BEC8C44D5A12_Aufnahme.mp3";
String soundName = "Aufnahme";
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<playSoundBrick>" +
"<soundInfo>" +
"<fileName>" + soundFileName + "</fileName>" +
"<name>" + soundName + "</name>" +
"</soundInfo>" +
"<object reference=\"../../../../..\"/>" +
"</playSoundBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();*/
//geht bei Unit-Test nicht, wegen addSound(...)
// parser.parseXML(spriteManager, xmlString);
//
// Sprite sprite = spriteManager.getSprite(spriteName, false);
//
// assertTrue(sprite.getScript(0).getBrick(0) instanceof PlaySoundBrick);
}
/**
*
*/
public void testParseXMLPlaySoundBrickWithReference() {
/*String soundFileName = "68223C25ABEFABA96FD2BEC8C44D5A12_Aufnahme.mp3";
String soundName = "Aufnahme";
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<playSoundBrick>" +
"<soundInfo>" +
"<fileName>" + soundFileName + "</fileName>" +
"<name>" + soundName + "</name>" +
"</soundInfo>" +
"<object reference=\"../../../../..\"/>" +
"</playSoundBrick>" +
"<playSoundBrick>" +
"<soundInfo reference=\"../../playSoundBrick/soundInfo\"/>" +
"<object reference=\"../../../../..\"/>" +
"</playSoundBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();*/
//geht bei Unit-Test nicht, wegen addSound(...)
// parser.parseXML(spriteManager, xmlString);
//
// Sprite sprite = spriteManager.getSprite(spriteName, false);
//
// assertTrue(sprite.getScript(0).getBrick(0) instanceof PlaySoundBrick);
// assertTrue(sprite.getScript(0).getBrick(1) instanceof PlaySoundBrick);
}
/**
*
*/
public void testParseXMLStopAllSoundsBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<stopAllSoundsBrick>" +
"<object reference=\"../../../../..\"/>" +
"</stopAllSoundsBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof StopAllSoundsBrick);
}
/**
*
*/
public void testParseXMLBroadcastBrick() {
String broadcastMessage = "Next";
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<broadcastBrick>" +
"<broadcastMessage>" + broadcastMessage + "</broadcastMessage>" +
"<object reference=\"../../../../..\"/>" +
"</broadcastBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof BroadcastBrick);
}
/**
*
*/
public void testParseXMLBroadcastWaitBrick() {
String broadcastMessage = "Next";
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<broadcastWaitBrick>" +
"<broadcastMessage>" + broadcastMessage + "</broadcastMessage>" +
"<object reference=\"../../../../..\"/>" +
"</broadcastWaitBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof BroadcastWaitBrick);
}
/**
*
*/
public void testParseXMLNoteBrick() {
String note = "Correct";
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<noteBrick>" +
"<note>" + note + "</note>" +
"<object reference=\"../../../../..\"/>" +
"</noteBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
assertTrue(sprite.getScript(0).getBrick(0) instanceof NoteBrick);
NoteBrick noteBrick = (NoteBrick)sprite.getScript(0).getBrick(0);
assertEquals(note, noteBrick.getNote());
}
/**
*
*/
public void testParseXMLRepeatBrick() {
int timesToRepeat = 3;
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<repeatBrick>" +
"<loopEndBrick>" +
"<loopBeginBrick class=\"repeatBrick\" reference=\"../..\"/>" +
"<object reference=\"../../../../../..\"/>" +
"</loopEndBrick>" +
"<object reference=\"../../../../..\"/>" +
"<timesToRepeat>" +
"<formulaTree>"+
"<type>NUMBER</type>"+
"<value>"+timesToRepeat+"</value>"+
"</formulaTree>"+
"</timesToRepeat>" +
"</repeatBrick>" +
"<loopEndBrick reference=\"../repeatBrick/loopEndBrick\"/>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof RepeatBrick);
RepeatBrick repeatBrick = (RepeatBrick)startScript.getBrick(0);
assertNotNull(repeatBrick.getLoopEndBrick());
assertEquals(repeatBrick.getLoopEndBrick(), startScript.getBrick(1));
}
/**
*
*/
public void testParseXMLForeverBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<foreverBrick>" +
"<loopEndBrick>" +
"<loopBeginBrick class=\"foreverBrick\" reference=\"../..\"/>" +
"<object reference=\"../../../../../..\"/>" +
"</loopEndBrick>" +
"<object reference=\"../../../../..\"/>" +
"</foreverBrick>" +
"<loopEndBrick reference=\"../repeatBrick/loopEndBrick\"/>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof ForeverBrick);
ForeverBrick foreverBrick = (ForeverBrick)startScript.getBrick(0);
assertNotNull(foreverBrick.getLoopEndlessBrick());
assertEquals(foreverBrick.getLoopEndlessBrick(), startScript.getBrick(1));
}
/**
*
*/
public void testParseXMLSetGhostEffectBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
double transparency = 10.0;
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setGhostEffectBrick>" +
"<object reference=\"../../../../..\"/>" +
"<transparency>" + transparency + "</transparency>" +
"</setGhostEffectBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof SetGhostEffectBrick);
}
/**
*
*/
public void testParseXMLChangeGhostEffectByNBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
double changeGhostEffect = 0.5;
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<changeGhostEffectByNBrick>" +
"<object reference=\"../../../../..\"/>" +
"<changeGhostEffect>" + changeGhostEffect + "</changeGhostEffect>" +
"</changeGhostEffectByNBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof ChangeGhostEffectByBrick);
}
/**
*
*/
public void testParseXMLIfOnEdgeBounceBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<ifOnEdgeBounceBrick>" +
"<object reference=\"../../../../..\"/>" +
"</ifOnEdgeBounceBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof IfOnEdgeBounceBrick);
}
/**
*
*/
public void testParseXMLPointToBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String pointedSpriteName = "TestSpritePointed";
String fileNamelook2 = "91223QE849283_look2";
String lookName2 = "look2";
double size = 100.0;
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<pointToBrick>" +
"<pointedObject>" +
"<lookList>" +
lookXMLString(fileNamelook2, lookName2) +
"</lookList>" +
"<name>" + pointedSpriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setSizeToBrick>" +
"<size>" + size + "</size>" +
"<object reference=\"../../../../..\"/>" +
"</setSizeToBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"<object reference=\"../../../../..\"/>" +
"</pointedObject>" +
"</pointToBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof PointToBrick);
}
/**
*
*/
public void testParseXMLPointToBrickWithReference() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String pointedSpriteName = "TestSpritePointed";
String fileNamelook2 = "91223QE849283_look2";
String lookName2 = "look2";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<pointToBrick>" +
"<pointedObject reference=\"../../../../../../object[2]\">" +
"<object reference=\"../../../../..\"/>" +
"</pointedObject>" +
"</pointToBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook2, lookName2) +
"</lookList>" +
"<name>" + pointedSpriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<showBrick>" +
"<object reference=\"../../../../..\"/>" +
"</showBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof PointToBrick);
}
/**
*
*/
public void testParseXMLClearGraphicEffectBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<clearGraphicEffectBrick>" +
"<object reference=\"../../../../..\"/>" +
"</clearGraphicEffectBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof ClearGraphicEffectBrick);
}
/**
*
*/
public void testParseXMLSetBrightnessBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
double brightness = 300.0;
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setBrightnessBrick>" +
"<object reference=\"../../../../..\"/>" +
"<brightness>" +
"<formulaTree>"+
"<type>NUMBER</type>"+
"<value>"+brightness+"</value>"+
"</formulaTree>"+
"</brightness>" +
"</setBrightnessBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof SetBrightnessBrick);
}
/**
* TODO: tag-name for brightness value unknown
*/
public void testParseXMLChangeBrightnessBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
double brightness = -30.0;
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<changeBrightnessByNBrick>" +
"<object reference=\"../../../../..\"/>" +
"<changeBrightness>" + brightness + "</changeBrightness>" +
"</changeBrightnessByNBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof ChangeBrightnessBrick);
}
//##########################################################################
/**
*
*/
public void testParseXMLSpriteReference() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String pointedSpriteName = "TestSpritePointed";
String fileNamelook2 = "91223QE849283_look2";
String lookName2 = "look2";
double size = 100.0;
String reference="../object/scriptList/startScript/brickList/pointToBrick/pointedObject";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<pointToBrick>" +
"<pointedObject>" +
"<lookList>" +
lookXMLString(fileNamelook2, lookName2) +
"</lookList>" +
"<name>" + pointedSpriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setSizeToBrick>" +
"<size>" + size + "</size>" +
"<object reference=\"../../../../..\"/>" +
"</setSizeToBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</pointedObject>" +
"<object reference=\"../../../../..\"/>" +
"</pointToBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"<object reference=\"" + reference + "\"/>" +
"</objectList>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
Sprite pointedSprite = spriteManager.getSprite(pointedSpriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
StartScript pointedStartScript = (StartScript)pointedSprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof PointToBrick);
assertTrue(pointedStartScript.getBrick(0) instanceof SetSizeToBrick);
}
public void testSetVariableBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
double oldValue = 10.0;
double targetValue = 30.0;
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setVariableBrick>"+
"<object reference=\"../../../../..\"/>"+
"<userVariable>"+
"<name>testname</name>"+
"<value>"+oldValue+"</value>"+
"</userVariable>"+
"<variableFormula>"+
"<formulaTree>"+
"<type>NUMBER</type>"+
"<value>"+targetValue+"</value>"+
"</formulaTree>"+
"</variableFormula>"+
"</setVariableBrick>"+
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
"<variables>"+
"<objectVariableList/>" +
"<programVariableList>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[2]/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[3]/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[4]/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[6]/userVariable\"/>" +
"</programVariableList>" +
"</variables>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
startScript.getBrick(0).execute();
assertTrue(startScript.getBrick(0) instanceof SetVariableBrick);
assertTrue(stage.getUserVariables().getUserVariable("testname", null).getValue() == targetValue);
}
public void testSimpleFormulaParsing() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
double oldValue = 123.5;
double targetValue = oldValue*13.5;
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>"+
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>Background</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setLookBrick>" +
"<object reference=\"../../../../..\"/>" +
"<look reference=\"../../../../../lookList/look\"/>" +
"</setLookBrick>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setVariableBrick>"+
"<object reference=\"../../../../..\"/>"+
"<userVariable>"+
"<name>testname</name>"+
"<value>"+oldValue+"</value>"+
"</userVariable>"+
"<variableFormula>"+
"<formulaTree>"+
"<leftChild>"+
"<type>NUMBER</type>"+
"<value>13.5</value>"+
"</leftChild>"+
"<rightChild>"+
"<type>USER_VARIABLE</type>"+
"<value>testname</value>"+
"</rightChild>"+
"<type>OPERATOR</type>"+
"<value>MULT</value>"+
"</formulaTree>"+
"</variableFormula>"+
"</setVariableBrick>"+
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
"<variables>"+
"<objectVariableList/>" +
"<programVariableList>" +
"<userVariable reference=\"../../../objectList/object[2]/scriptList/startScript/brickList/setVariableBrick/userVariable\"/>" +
"</programVariableList>" +
"</variables>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
startScript.getBrick(0).execute();
//assertEquals(targetValue, stage.getUserVariables().getUserVariable("testname", null).getValue());
assertEquals(targetValue, ((SetVariableBrick)startScript.getBrick(0)).getUserVariable().getValue());
}
public void testFormulaParsing() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
double oldValue = 42.0;
double targetValue = Math.round(((oldValue*479) / 2.0));
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<setVariableBrick>"+
"<object reference=\"../../../../..\"/>"+
"<userVariable>"+
"<name>testname</name>"+
"<value>"+oldValue+"</value>"+
"</userVariable>"+
"<variableFormula>"+
"<formulaTree>"+
"<leftChild>"+
"<leftChild>"+
"<leftChild>"+
"<type>NUMBER</type>"+
"<value>479</value>"+
"</leftChild>"+
"<rightChild>"+
"<type>USER_VARIABLE</type>"+
"<value>testname</value>"+
"</rightChild>"+
"<type>OPERATOR</type>"+
"<value>MULT</value>"+
"</leftChild>"+
"<rightChild>"+
"<type>NUMBER</type>"+
"<value>2</value>"+
"</rightChild>"+
"<type>OPERATOR</type>"+
"<value>DIVIDE</value>"+
"</leftChild>"+
"<type>FUNCTION</type>"+
"<value>ROUND</value>"+
"</formulaTree>"+
"</variableFormula>"+
"</setVariableBrick>"+
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
"<variables>"+
"<objectVariableList/>" +
"<programVariableList>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[2]/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[3]/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[4]/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[6]/userVariable\"/>" +
"</programVariableList>" +
"</variables>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
startScript.getBrick(0).execute();
assertEquals(targetValue, stage.getUserVariables().getUserVariable("testname", null).getValue());
}
public void testIfLogicBrick() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
"<ifLogicBeginBrick>" +
"<object reference=\"../../../../..\"/>" +
"<ifCondition>" +
"<formulaTree>" +
"<leftChild>" +
"<type>NUMBER</type>" +
"<value>1.0</value>" +
"</leftChild>" +
"<rightChild>" +
"<type>NUMBER</type>" +
"<value>1.0</value>" +
"</rightChild>" +
"<type>OPERATOR</type>" +
"<value>NOT_EQUAL</value>" +
"</formulaTree>" +
"</ifCondition>" +
"<ifElseBrick>" +
"<object reference=\"../../../../../..\"/>" +
"<ifBeginBrick reference=\"../..\"/>" +
"<ifEndBrick>" +
"<object reference=\"../../../../../../..\"/>" +
"<beginBrick reference=\"../../..\"/>" +
"<elseBrick reference=\"../..\"/>" +
"</ifEndBrick>" +
"</ifElseBrick>" +
"<ifEndBrick reference=\"../ifElseBrick/ifEndBrick\"/>" +
"</ifLogicBeginBrick>" +
"<ifLogicElseBrick reference=\"../ifLogicBeginBrick/ifElseBrick\"/>" +
"<ifLogicEndBrick reference=\"../ifLogicBeginBrick/ifElseBrick/ifEndBrick\"/>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
"<variables>"+
"<objectVariableList/>" +
"<programVariableList/>" +
"</variables>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
assertTrue(startScript.getBrick(0) instanceof IfLogicBrick);
}
public void testIfLogicAction() {
String spriteName = "TestSprite";
String fileNamelook = "923QE849283_look";
String lookName = "look1";
double oldValue = 1.0;
double targetValue = 10.0;
String xmlString = xmlStringRumpBegin +
"<objectList>"+
"<object>" +
"<lookList>" +
lookXMLString(fileNamelook, lookName) +
"</lookList>" +
"<name>" + spriteName + "</name>" +
"<scriptList>" +
"<startScript>" +
"<brickList>" +
// "<setVariableBrick>"+
// "<object reference=\"../../../../..\"/>"+
// "<userVariable>"+
// "<name>testname</name>"+
// "<value>"+oldValue+"</value>"+
// "</userVariable>"+
// "<variableFormula>"+
// "<formulaTree>"+
// "<type>NUMBER</type>"+
// "<value>"+oldValue+"</value>"+
// "</formulaTree>"+
// "</variableFormula>"+
// "</setVariableBrick>"+
"<ifLogicBeginBrick>" +
"<object reference=\"../../../../..\"/>" +
"<ifCondition>" +
"<formulaTree>" +
"<leftChild>" +
"<type>NUMBER</type>" +
"<value>1.0</value>" +
"</leftChild>" +
"<rightChild>" +
"<type>NUMBER</type>" +
"<value>42.0</value>" +
"</rightChild>" +
"<type>OPERATOR</type>" +
"<value>NOT_EQUAL</value>" +
"</formulaTree>" +
"</ifCondition>" +
"<ifElseBrick>" +
"<object reference=\"../../../../../..\"/>" +
"<ifBeginBrick reference=\"../..\"/>" +
"<ifEndBrick>" +
"<object reference=\"../../../../../../..\"/>" +
"<beginBrick reference=\"../../..\"/>" +
"<elseBrick reference=\"../..\"/>" +
"</ifEndBrick>" +
"</ifElseBrick>" +
"<ifEndBrick reference=\"../ifElseBrick/ifEndBrick\"/>" +
"</ifLogicBeginBrick>" +
"<setVariableBrick>"+
"<object reference=\"../../../../..\"/>"+
"<userVariable>"+
"<name>testname</name>"+
"<value>"+oldValue+"</value>"+
"</userVariable>"+
"<variableFormula>"+
"<formulaTree>"+
"<type>NUMBER</type>"+
"<value>"+targetValue+"</value>"+
"</formulaTree>"+
"</variableFormula>"+
"</setVariableBrick>"+
"<ifLogicElseBrick reference=\"../ifLogicBeginBrick/ifElseBrick\"/>" +
"<ifLogicEndBrick reference=\"../ifLogicBeginBrick/ifElseBrick/ifEndBrick\"/>" +
"</brickList>" +
"<object reference=\"../../..\"/>" +
"</startScript>" +
"</scriptList>" +
"<soundList/>" +
"</object>" +
"</objectList>" +
"<variables>"+
"<objectVariableList/>" +
"<programVariableList>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[2]/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[3]/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[4]/userVariable\"/>" +
"<userVariable reference=\"../../../objectList/object/scriptList/startScript/brickList/setVariableBrick[6]/userVariable\"/>" +
"</programVariableList>" +
"</variables>" +
xmlStringRumpEnd;
Parser parser = new Parser();
parser.parseXML(spriteManager, xmlString);
Sprite sprite = spriteManager.getSprite(spriteName, false);
StartScript startScript = (StartScript)sprite.getScript(0);
startScript.getBrick(0).execute();
assertEquals(targetValue, stage.getUserVariables().getUserVariable("testname", null).getValue());
}
}