public void CreateDefineClassCommand() { DefineClassCommand command = new DefineClassCommand("MyClass", null); Assert.AreEqual("MyClass", command.Name); Assert.IsNull(command.Command); }
private ICommand ParseClassAgentCommand(bool isagent) { string name = this.ParseName(); List <string> memberNames = new List <string>(); List <IExpression> memberExpressions = new List <IExpression>(); this.Parse(TokenType.Separator, "{"); while (this.TryParse(TokenType.Name, "var", "function", "sub", "default")) { Token token = this.lexer.NextToken(); if (token.Value == "var") { this.ParseMemberVariable(memberNames, memberExpressions); } else if (token.Value == "default") { Token token2 = this.lexer.NextToken(); if (token2.Value == "function" || token2.Value == "sub") { this.ParseMemberMethod(memberNames, memberExpressions, true); } else { throw new UnexpectedTokenException(token2); } } else if (token.Value == "function" || token.Value == "sub") { this.ParseMemberMethod(memberNames, memberExpressions, false); } else { throw new UnexpectedTokenException(token); } } this.Parse(TokenType.Separator, "}"); if (isagent) { return(new DefineAgentCommand(name, memberNames.ToArray(), memberExpressions)); } DefineClassCommand cmd = new DefineClassCommand(name, memberNames.ToArray(), memberExpressions); return(cmd); }
public void ExecuteDefineClassCommand() { Context context = new Context(); DefineClassCommand command = new DefineClassCommand("MyClass", null); command.Execute(context); var result = context.GetValue("MyClass"); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(IClass)); IClass klass = (IClass)result; Assert.AreEqual("MyClass", klass.Name); }
public void ParseDefineClassCommand() { Parser parser = new Parser("class MyClass { } "); var result = parser.ParseCommand(); Assert.IsNotNull(result); Assert.That(result is DefineClassCommand); DefineClassCommand command = (DefineClassCommand)result; Assert.AreEqual("MyClass", command.Name); Assert.IsNull(command.Command); Assert.IsNull(parser.ParseCommand()); }