using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;
namespace JavaScript.UnitTest
{
[TestFixture]
public class SwitchTest
{
protected string m_code = "var x = 'abc';\r\n" +
"switch(y)\r\n" +
"{\r\n" +
" case 0:\r\n" +
" x = 'bob';\r\n" +
" break;\r\n" +
" case 1:\r\n" +
" x = 'bill';\r\n" +
" case 2:\r\n" +
" x = 'blarg';\r\n" +
" break;\r\n" +
" case 3:\r\n" +
" x = '3';\r\n" +
" break;\r\n" +
" case '123':\r\n" +
" x = '66';\r\n" +
" break;\r\n" +
" default:\r\n" +
" x = 'snarf';\r\n" +
" break;\r\n" +
"}\r\n" +
"x;";
[Test]
public void IntExpr()
{
JsEngine eng = new JsEngine();
Assert.AreEqual("bob", eng.Eval("var y = 0;\r\n" + m_code).ToString());
}
[Test]
public void StringExpr()
{
JsEngine eng = new JsEngine();
Assert.AreEqual("66", eng.Eval("var y = \"123\";\r\n" + m_code).ToString());
}
[Test]
public void FallThrough()
{
JsEngine eng = new JsEngine();
Assert.AreEqual("blarg", eng.Eval("var y = 1;\r\n" + m_code).ToString());
}
[Test]
public void Default()
{
JsEngine eng = new JsEngine();
Assert.AreEqual("snarf", eng.Eval("var y = 99;\r\n" + m_code).ToString());
}
}
}