public void It_can_generate_dtos() { const string expected = @"export interface IB { } export interface IPersonEntity { id: number; name?: string; isActive: boolean; uniqueId: string; createdOn: Date; deletedOn?: Date; favoriteTypes?: ITypesEntity; parent?: IPersonEntity; ignoredClass?: any; } export interface ITypesEntity { int: number; nullableInt?: number; nullableBool?: boolean; long: number; nullableLong?: number; short: number; nullableShort?: number; string?: string; nullableGuid?: string; intArray: Array<number>; stringList: Array<string>; guidEnumerable: Array<string>; } "; var actual = TsFromCsGenerator.GenerateTypescriptInterfaceFromCsharpClass(typeof(TypesEntity), typeof(PersonEntity), typeof(IgnoredClass), typeof(A)); Assert.Equal(expected, actual); Assert.Equal( expected: @"error error // multiple classes with the same name: ""PersonEntity"", please correct by renaming a class or adding a TsFromCsNameAttribute", actual: TsFromCsGenerator.GenerateTypescriptInterfaceFromCsharpClass(typeof(PersonEntity), typeof(Container.PersonEntity))); Assert.Equal( expected: @"error error // multiple classes with the same name: ""PersonEntity"", please correct by renaming a class or adding a TsFromCsNameAttribute", actual: TsFromCsGenerator.GenerateTypescriptInterfaceFromCsharpClass(typeof(PersonEntity), typeof(Container.SecondError))); }
public void It_can_generate_interfaces() { const string expected = @"export interface IHub { OnMessage(message: string): void; OnMessageAsync(message: string): Promise<void>; Create(person: IPersonEntity): IPersonEntity; } export interface IPersonEntity { id: number; name?: string; isActive: boolean; uniqueId: string; createdOn: Date; deletedOn?: Date; parent?: IPersonEntity; } "; var actual = TsFromCsGenerator.GenerateTypescriptInterfaceFromCsharpClass(typeof(IHub), typeof(PersonEntity)); Assert.Equal(expected, actual); }