public void NonPublicClassTest() { GeneratorHelper.AssertEqual(@" class Foo {} ", @" "); }
public void EmptyEnumeTest() { GeneratorHelper.AssertEqual(@" public enum Foo {} ", @" export enum Foo {} "); }
public void SimpleClassTest() { GeneratorHelper.AssertEqual(@" public class Foo {} ", @" export class Foo {} "); }
public void ClassToInterfaceTest() { GeneratorHelper.AssertEqual(@" public class Foo {} ", @" export interface Foo {} ", options => options.ConvertClassesToInterfaces = true); }
public void EmptyEnumeTest() { GeneratorHelper.AssertEqual(@" public enum Foo {} ", @" export const enum Foo {} ", options => options.MakeEnumConst = true); }
public void ClassWithNamespaceTest() { GeneratorHelper.AssertEqual(@" namespace Baz { public class Foo {} } ", @" export class Foo {} "); }
public void ClassAttributeTest() { GeneratorHelper.AssertEqual(@" [MyAttribute()] public class Foo {} ", @" // MyAttribute() export class Foo {} "); }
public void PropertyWithSetterTest() { GeneratorHelper.AssertEqual(@" public class Foo { public MyType MyProperty { set { } } } ", @" export class Foo { } "); }
public void StaticPropertyTest() { GeneratorHelper.AssertEqual(@" public class Foo { public static MyType MyProperty { get; } } ", @" export class Foo { } "); }
public void PropertyWithPrivateGetterTest() { GeneratorHelper.AssertEqual(@" public class Foo { public MyType MyProperty { private get; } } ", @" export class Foo { } "); }
public void PropertyToCamelCaseTest() { GeneratorHelper.AssertEqual(@" public class Foo { public MyType MyProperty { get; set; } } ", @" export class Foo { public myProperty: MyType; } ", options => options.ConvertFieldsToCamelCase = true); }
public void EnumWithMembersWithImplicitValuesTest() { GeneratorHelper.AssertEqual(@" public enum Foo { Value1, Value2 } ", @" export enum Foo { Value1, Value2, } "); }
public void PropertyWithGetterTest() { GeneratorHelper.AssertEqual(@" public class Foo { public MyType MyProperty { get; } } ", @" export class Foo { public MyProperty: MyType; } "); }
private static void AssertType(string csharpType, string typescriptType) { GeneratorHelper.AssertEqual(@" public class Foo { public " + csharpType + @" Bar { get; } } ", @" export class Foo { public Bar: " + typescriptType + @"; } "); }
public void CustomTypePrefixTest() { GeneratorHelper.AssertEqual(@" public class Foo { public Foo Property1 { get; } public Bar Property2 { get; } } ", @" export class IFoo { public Property1: IFoo; public Property2: Bar; } ", options => options.CustomTypePrefix = "I"); }
public void PropertyAttributeTest() { GeneratorHelper.AssertEqual(@" public class Foo { [MyAttribute()] public int Bar { get; } } ", @" export class Foo { // MyAttribute() public Bar: number; } "); }
public void ClassCommentTest() { GeneratorHelper.AssertEqual(@" /// <summary> /// This a XML documentation comment. /// </summary> public class Foo {} ", @" /** * <summary> * This a XML documentation comment. * </summary> */ export class Foo {} "); }
public void CustomTypePrefixWithPartialClassTest() { GeneratorHelper.AssertEqual(@" public partial class Foo { public Foo Property1 { get; } } public partial class Foo { public Foo Property2 { get; } } ", @" export class IFoo { public Property1: IFoo; public Property2: IFoo; } ", options => options.CustomTypePrefix = "I"); }
public void PartialClassTest() { GeneratorHelper.AssertEqual(@" public partial class Foo { public string Prop1 { get; } } public partial class Foo { public string Prop2 { get; } } ", @" export class Foo { public Prop1: string; public Prop2: string; } "); }
public void PropertyCommentTest() { GeneratorHelper.AssertEqual(@" public class Foo { /// <summary> /// This a XML documentation comment. /// </summary> public int Bar { get; } } ", @" export class Foo { /** * <summary> * This a XML documentation comment. * </summary> */ public Bar: number; } "); }
public void SyntaxErrorTest() { GeneratorHelper.AssertEqual("class Foo {", ""); }