public void TestModalVerb() {
var xml = @"<function><type><name>int</name></type> <name><name>ToolBarXmlHandlerEx</name><op:operator>::</op:operator><name>CanHandle</name></name><parameter_list>(<param><decl><type><name>wxXmlNode</name> <type:modifier>*</type:modifier></type><name>node</name></decl></param>)</parameter_list> <block>{
<return>return <expr><lit:literal type=""number"">0</lit:literal></expr>;</return>
}</block></function>";
var unit = fileUnitSetup.GetFileUnitForXmlSnippet(xml, "test.cpp");
var func = unit.Descendants(SRC.Function).First();
var mdn = new MethodDeclarationNode(SrcMLElement.GetNameForMethod(func).Value, ContextBuilder.BuildMethodContext(func));
builder.ApplyRules(mdn);
Assert.AreEqual(typeof(CheckerRule), mdn.SwumRuleUsed.GetType());
var expected = @"Can(VerbIgnorable) Handle(VerbIgnorable) | [wx(NounModifier) Xml(NounModifier) Node(NounIgnorable) - node(Unknown)]
++ Tool(NounModifier) Bar(NounModifier) Xml(NounModifier) Handler(NounModifier) Ex(Noun) ++ int(Noun)";
Assert.AreEqual(expected, mdn.ToString());
}