public void ParsingCommandWithoutArgumentsSeparatorShouldReturnEmptyArguments() { var actual = this.parser.Parse("AddEvent 2012-03-26T09:00:00 C# exam"); var expected = new CommandInfo("AddEvent", new string[] { "2012-03-26T09:00:00 C# exam" }); Assert.AreEqual(expected.Name, actual.Name); Assert.IsTrue(expected.Arguments.SequenceEqual(actual.Arguments)); }
public void ParsingValidCommandShouldReturnCommandInfo() { var actual = this.parser.Parse("AddEvent 2012-03-26T09:00:00 | C# exam"); var expected = new CommandInfo("AddEvent", new string[] { "2012-03-26T09:00:00", "C# exam" }); Assert.AreEqual(expected.Name, actual.Name); Assert.IsTrue(expected.Arguments.SequenceEqual(actual.Arguments)); }
public ICommandInfo Parse(string userLine) { int firstSpaceIndex = userLine.IndexOf(' '); if (firstSpaceIndex == -1) { throw new ArgumentException("Invalid command: " + userLine); } string name = userLine.Substring(0, firstSpaceIndex); string argumentsAsString = userLine.Substring(firstSpaceIndex + 1); var arguments = argumentsAsString.Split('|'); for (int i = 0; i < arguments.Length; i++) { arguments[i] = arguments[i].Trim(); } var commandInfo = new CommandInfo(name, arguments); return commandInfo; }