public void CanBeConstructedFromNongenericClrTypes() { var intType = new NamedType(typeof(int)); intType.Name.ShouldEqual("System.Int32"); intType.GenericArguments.ShouldBeEmpty(); intType.ToString().ShouldEqual("int"); }
public void CanBeConstructedFromClosedGenericClrTypes() { var closedEnumerable = new NamedType(typeof(IEnumerable<int>)); closedEnumerable.Name.ShouldEqual("System.Collections.Generic.IEnumerable"); closedEnumerable.GenericArguments.Single().ShouldEqual(new NamedType(typeof(int))); closedEnumerable.ToString().ShouldEqual("System.Collections.Generic.IEnumerable<int>"); }
public void CanBeConstructedFromEmptyRookClassDeclarations() { var @class = "class Foo { }".ParseClass(); var foo = new NamedType(@class); foo.Name.ShouldEqual("Foo"); foo.GenericArguments.ShouldBeEmpty(); foo.ToString().ShouldEqual("Foo"); }
public void CanBeConstructedFromOpenGenericClrTypes() { using (TypeVariable.TestFactory()) { var openEnumerable = new NamedType(typeof(IEnumerable<>)); openEnumerable.Name.ShouldEqual("System.Collections.Generic.IEnumerable"); openEnumerable.GenericArguments.Single().ShouldEqual(new TypeVariable(0)); openEnumerable.ToString().ShouldEqual("System.Collections.Generic.IEnumerable<0>"); } }
public void CanBeConstructedFromRookClassDeclarationsIncludingMethods() { var @class = "class Foo { int Square(int x) x*x; }".ParseClass(); var foo = new NamedType(@class); foo.Name.ShouldEqual("Foo"); foo.GenericArguments.ShouldBeEmpty(); foo.ToString().ShouldEqual("Foo"); foo.Methods.ShouldList( method => { method.Identifier.ShouldEqual("Square"); method.Type.ShouldEqual(NamedType.Function(new[] {NamedType.Integer}, NamedType.Integer)); }); }