public void InteractiveWindow_DisplayCommandsHelp() { var commandList = MockCommands("foo").ToArray(); var commands = new Commands.Commands(null, "&", commandList); Assert.Equal(new string[] { "&foo Description of foo command." }, commands.Help().ToArray()); }
public User() { DefaultShow = Matrix.Xmpp.Show.Chat; Enabled = true; StorePassword = true; DefaultPriority = DEFAULT_PRIORITY; Connected = false; StoreMessageOnDevice = false; Group = DEFAULT_GROUP; Resource = "ftr"; Client = new XmppClient(); Contacts = new List<Contact>(); Show = Matrix.Xmpp.Show.None; Priority = DEFAULT_PRIORITY; Status = DefaultStatus; Command = new Commands.Commands(this); }
public void InteractiveWindow__CommandParsing() { var commandList = MockCommands("foo", "bar", "bz", "command1").ToArray(); var commands = new Commands.Commands(null, "%", commandList); AssertEx.Equal(commands.GetCommands(), commandList); var cmdBar = commandList[1]; Assert.Equal("bar", cmdBar.Names.First()); Assert.Equal("%", commands.CommandPrefix); commands.CommandPrefix = "#"; Assert.Equal("#", commands.CommandPrefix); //// 111111 //// 0123456789012345 var s1 = MockSnapshot("#bar arg1 arg2 "); SnapshotSpan prefixSpan, commandSpan, argsSpan; IInteractiveWindowCommand cmd; cmd = commands.TryParseCommand(new SnapshotSpan(s1, Span.FromBounds(0, 0)), out prefixSpan, out commandSpan, out argsSpan); Assert.Null(cmd); cmd = commands.TryParseCommand(new SnapshotSpan(s1, Span.FromBounds(0, 1)), out prefixSpan, out commandSpan, out argsSpan); Assert.Null(cmd); cmd = commands.TryParseCommand(new SnapshotSpan(s1, Span.FromBounds(0, 2)), out prefixSpan, out commandSpan, out argsSpan); Assert.Null(cmd); Assert.Equal(0, prefixSpan.Start); Assert.Equal(1, prefixSpan.End); Assert.Equal(1, commandSpan.Start); Assert.Equal(2, commandSpan.End); Assert.Equal(2, argsSpan.Start); Assert.Equal(2, argsSpan.End); cmd = commands.TryParseCommand(new SnapshotSpan(s1, Span.FromBounds(0, 3)), out prefixSpan, out commandSpan, out argsSpan); Assert.Null(cmd); Assert.Equal(0, prefixSpan.Start); Assert.Equal(1, prefixSpan.End); Assert.Equal(1, commandSpan.Start); Assert.Equal(3, commandSpan.End); Assert.Equal(3, argsSpan.Start); Assert.Equal(3, argsSpan.End); cmd = commands.TryParseCommand(new SnapshotSpan(s1, Span.FromBounds(0, 4)), out prefixSpan, out commandSpan, out argsSpan); Assert.Equal(cmdBar, cmd); Assert.Equal(0, prefixSpan.Start); Assert.Equal(1, prefixSpan.End); Assert.Equal(1, commandSpan.Start); Assert.Equal(4, commandSpan.End); Assert.Equal(4, argsSpan.Start); Assert.Equal(4, argsSpan.End); cmd = commands.TryParseCommand(new SnapshotSpan(s1, Span.FromBounds(0, 5)), out prefixSpan, out commandSpan, out argsSpan); Assert.Equal(cmdBar, cmd); Assert.Equal(0, prefixSpan.Start); Assert.Equal(1, prefixSpan.End); Assert.Equal(1, commandSpan.Start); Assert.Equal(4, commandSpan.End); Assert.Equal(5, argsSpan.Start); Assert.Equal(5, argsSpan.End); cmd = commands.TryParseCommand(s1.GetExtent(), out prefixSpan, out commandSpan, out argsSpan); Assert.Equal(cmdBar, cmd); Assert.Equal(0, prefixSpan.Start); Assert.Equal(1, prefixSpan.End); Assert.Equal(1, commandSpan.Start); Assert.Equal(4, commandSpan.End); Assert.Equal(5, argsSpan.Start); Assert.Equal(14, argsSpan.End); //// //// 0123456789 var s2 = MockSnapshot(" #bar "); cmd = commands.TryParseCommand(s2.GetExtent(), out prefixSpan, out commandSpan, out argsSpan); Assert.Equal(cmdBar, cmd); Assert.Equal(2, prefixSpan.Start); Assert.Equal(3, prefixSpan.End); Assert.Equal(3, commandSpan.Start); Assert.Equal(6, commandSpan.End); Assert.Equal(9, argsSpan.Start); Assert.Equal(9, argsSpan.End); //// 111111 //// 0123456789012345 var s3 = MockSnapshot(" # bar args"); cmd = commands.TryParseCommand(s3.GetExtent(), out prefixSpan, out commandSpan, out argsSpan); Assert.Equal(cmdBar, cmd); Assert.Equal(2, prefixSpan.Start); Assert.Equal(3, prefixSpan.End); Assert.Equal(6, commandSpan.Start); Assert.Equal(9, commandSpan.End); Assert.Equal(11, argsSpan.Start); Assert.Equal(15, argsSpan.End); }