public void MetaReplaceGroups() { List <Chat> chats = ChatParser.ParseText("DO emote {type=(A|B)}"); Assert.That(chats.Count, Is.EqualTo(1)); Assert.That(chats[0].Count, Is.EqualTo(1)); Assert.That(chats[0].GetType(), Is.EqualTo(typeof(Chat))); Assert.That(chats[0].commands[0].GetType(), Is.EqualTo(typeof(Do))); Do doo = (Do)chats[0].commands[0]; Assert.That(doo.text, Is.EqualTo("emote")); Assert.That(doo.HasMeta("type"), Is.EqualTo(true)); Assert.That(doo.GetMeta("type"), Is.EqualTo("(A|B)")); for (int i = 0; i < 10; i++) { doo.Resolve(globals); Assert.That(doo.Text(), Is.EqualTo("emote")); //Console.WriteLine(doo.GetResolved("type")); Assert.That(doo.Resolved("type"), Is.EqualTo("A").Or.EqualTo("B")); } }