IfTokenTest.java :  » Scripting » gml-tracer » de » hauschild » gmltracer » gml » impl » control » Java Open Source

Java Open Source » Scripting » gml tracer 
gml tracer » de » hauschild » gmltracer » gml » impl » control » IfTokenTest.java
package de.hauschild.gmltracer.gml.impl.control;

import java.util.List;

import org.testng.Assert;
import org.testng.annotations.Test;

import de.hauschild.gmltracer.gml.Environment;
import de.hauschild.gmltracer.gml.Interpreter;
import de.hauschild.gmltracer.gml.Parser;
import de.hauschild.gmltracer.gml.Token;
import de.hauschild.gmltracer.gml.TokenStack;
import de.hauschild.gmltracer.gml.impl.GmlInterpreter;
import de.hauschild.gmltracer.gml.impl.GmlParser;
import de.hauschild.gmltracer.gml.impl.value.bool.BooleanToken;
import de.hauschild.gmltracer.gml.impl.value.integer.IntegerToken;

public class IfTokenTest {

  private final String      program       = "b { 1 } { 2 } if";
  private final Parser      parser        = new GmlParser();
  private final Interpreter interpreter   = new GmlInterpreter();
  private final List<Token> tokenSequence = parser.parse(program);

  @Test
  public void integrativeTestForFalse() {
    final Environment environment = new Environment();
    final TokenStack tokenStack = new TokenStack();
    environment.put("b", new BooleanToken(false));
    interpreter.interpret(environment, tokenStack, tokenSequence);
    final IntegerToken intToken = tokenStack.pop(IntegerToken.class);
    Assert.assertEquals(intToken.getValue(), Integer.valueOf(2));
  }

  @Test
  public void integrativeTestForTrue() {
    final Environment environment = new Environment();
    final TokenStack tokenStack = new TokenStack();
    environment.put("b", new BooleanToken(true));
    interpreter.interpret(environment, tokenStack, tokenSequence);
    final IntegerToken intToken = tokenStack.pop(IntegerToken.class);
    Assert.assertEquals(intToken.getValue(), Integer.valueOf(1));
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.