public void ParseMessageWithTwoArguments()
{
ModelParser parser = new ModelParser("r width: 100 height: 200");
IExpression expression = parser.ParseExpression();
Assert.IsNotNull(expression);
Assert.IsInstanceOfType(expression, typeof(MessageExpression));
MessageExpression mexpression = (MessageExpression)expression;
Assert.IsInstanceOfType(mexpression.Target, typeof(VariableExpression));
VariableExpression vexpression = (VariableExpression)mexpression.Target;
Assert.AreEqual("r", vexpression.Name);
Assert.AreEqual("width:height:", mexpression.Selector);
Assert.AreEqual(2, mexpression.Arguments.Count());
Assert.IsInstanceOfType(mexpression.Arguments.First(), typeof(ConstantExpression));
ConstantExpression cexpression1 = (ConstantExpression)mexpression.Arguments.First();
Assert.AreEqual(100, cexpression1.Value);
Assert.IsInstanceOfType(mexpression.Arguments.Skip(1).First(), typeof(ConstantExpression));
ConstantExpression cexpression2 = (ConstantExpression)mexpression.Arguments.Skip(1).First();
Assert.AreEqual(200, cexpression2.Value);
Assert.AreEqual("r width: 100 height: 200", expression.AsString());
}