public void TestInterface1()
{
Boo.Lang.Compiler.Ast.Module module = ParseTestCase("interface_1.boo");
Assert.AreEqual(1, module.Members.Count);
InterfaceDefinition id = (InterfaceDefinition)module.Members[0];
Assert.AreEqual("IContentItem", id.Name);
Assert.AreEqual(5, id.Members.Count);
Property p = (Property)id.Members[0];
Assert.AreEqual("Parent", p.Name);
Assert.AreEqual("IContentItem", ((SimpleTypeReference)p.Type).Name);
Assert.IsNotNull(p.Getter, "Getter");
Assert.IsNull(p.Setter, "Setter");
p = (Property)id.Members[1];
Assert.AreEqual("Name", p.Name);
Assert.AreEqual("string", ((SimpleTypeReference)p.Type).Name);
Assert.IsNotNull(p.Getter, "Getter");
Assert.IsNotNull(p.Setter, "Setter");
Method m = (Method)id.Members[2];
Assert.AreEqual("SelectItem", m.Name);
Assert.AreEqual("IContentItem", ((SimpleTypeReference)m.ReturnType).Name);
Assert.AreEqual("expression", m.Parameters[0].Name);
Assert.AreEqual("string", ((SimpleTypeReference)m.Parameters[0].Type).Name);
Assert.AreEqual("Validate", ((Method)id.Members[3]).Name);
Assert.AreEqual("OnRemove", ((Method)id.Members[4]).Name);
}