public void Can_Convert_Definition_Of_Models_Only() { StringBuilder result = new StringBuilder(); result.AppendLine("/**"); result.AppendLine(" * Opten.Web.Infrastructure.Test.TypeScript.PersonModel"); result.AppendLine(" */"); result.AppendLine("export class IPerson {"); result.AppendLine("\tName: string;"); result.AppendLine("\tAge: number;"); result.AppendLine("\tEnum: MySuperEnum;"); result.AppendLine("\tAddresses: Array<string>;"); result.AppendLine("}"); result.AppendLine(); TypeScriptModel[] models = new[] { new TypeScriptModel("MySuperEnum", typeof(MySuperEnum)), new TypeScriptModel("IPerson", typeof(PersonModel)) }; TypeScriptModelsBuilder builder = new TypeScriptModelsBuilder( declarations: models, models: models.Where(o => o.Type.IsEnum == false).ToArray()); Assert.AreEqual(result.ToString(), builder.Build().ToString()); }
public void Can_Convert_Definition_Of_Single_Model() { StringBuilder result = new StringBuilder(); result.AppendLine("/**"); result.AppendLine(" * Opten.Web.Infrastructure.Test.TypeScript.PersonModel"); result.AppendLine(" */"); result.AppendLine("interface IPerson {"); result.AppendLine("\tName: string;"); result.AppendLine("\tAge: number;"); result.AppendLine("\tEnum: any;"); result.AppendLine("\tAddresses: Array<string>;"); result.AppendLine("}"); result.AppendLine(); TypeScriptModelsBuilder builder = new TypeScriptModelsBuilder( models: new[] { new TypeScriptModel("IPerson", typeof(PersonModel)) }, settings: new TypeScriptModelsBuilderSettings { PrefixClass = "interface" }); Assert.AreEqual(result.ToString(), builder.Build().ToString()); }
public void Can_Convert_Definition_Of_Enum() { StringBuilder result = new StringBuilder(); result.AppendLine("enum MySuperEnum2 {"); result.AppendLine("\tValue1,"); result.AppendLine("\tHello"); result.AppendLine("}"); result.AppendLine(); TypeScriptModelsBuilder builder = new TypeScriptModelsBuilder( models: new[] { new TypeScriptModel("MySuperEnum2", typeof(MySuperEnum), new[] { "Testing" }) }, settings: new TypeScriptModelsBuilderSettings { Comments = false, PrefixEnum = "enum" }); Assert.AreEqual(result.ToString(), builder.Build().ToString()); }
public void Can_Convert_Definition_Of_Single_Model_As_Class() { StringBuilder result = new StringBuilder(); result.AppendLine("class Person {"); result.AppendLine("\tName: string;"); result.AppendLine("\tAge: number;"); result.AppendLine("\tEnum: any;"); result.AppendLine("\tAddresses: Array<string>;"); result.AppendLine("}"); result.AppendLine(); TypeScriptModelsBuilder builder = new TypeScriptModelsBuilder( models: new[] { new TypeScriptModel("Person", typeof(PersonModel)) }, settings: new TypeScriptModelsBuilderSettings { Comments = false, PrefixClass = "class" }); Assert.AreEqual(result.ToString(), builder.Build().ToString()); }
public void Can_Convert_Definition_Of_Multiple_Models_With_Array() { StringBuilder result = new StringBuilder(); result.AppendLine("/**"); result.AppendLine(" * Opten.Web.Infrastructure.Test.TypeScript.DoSomethingModel"); result.AppendLine(" */"); result.AppendLine("export class DoSomething {"); result.AppendLine("}"); result.AppendLine(); result.AppendLine("/**"); result.AppendLine(" * Opten.Web.Infrastructure.Test.TypeScript.DictionaryModel"); result.AppendLine(" */"); result.AppendLine("export class Dictionary {"); result.AppendLine("}"); result.AppendLine(); result.AppendLine("/**"); result.AppendLine(" * Opten.Web.Infrastructure.Test.TypeScript.MySuperEnum"); result.AppendLine(" */"); result.AppendLine("export enum MySuperEnum {"); result.AppendLine("\tValue1,"); result.AppendLine("\tTesting,"); result.AppendLine("\tHello"); result.AppendLine("}"); result.AppendLine(); result.AppendLine("/**"); result.AppendLine(" * Opten.Web.Infrastructure.Test.TypeScript.PersonModel"); result.AppendLine(" */"); result.AppendLine("export class IPerson {"); result.AppendLine("\tName: string;"); result.AppendLine("\tAge: number;"); result.AppendLine("\tEnum: MySuperEnum;"); result.AppendLine("\tAddresses: Array<string>;"); result.AppendLine("}"); result.AppendLine(); result.AppendLine("/**"); result.AppendLine(" * Opten.Web.Infrastructure.Test.TypeScript.Car"); result.AppendLine(" */"); result.AppendLine("export class ICar {"); result.AppendLine("\tisCabriolet?: boolean;"); result.AppendLine("\tNumberOfWheels: number;"); result.AppendLine("\tAgesOfPassengers: Array<number>;"); result.AppendLine("\tNamesOfPassengers: Array<string>;"); result.AppendLine("\tNamesOfPassengers2: Array<string>;"); result.AppendLine("\tDriver: IPerson;"); result.AppendLine("\tpass?: Array<string>;"); result.AppendLine("\tiAmNotIgnoredAnymore: string;"); result.AppendLine("\tPassengersDictionary: { [key: string]: boolean };"); result.AppendLine("\tPassengersDictionary2: { [key: string]: boolean };"); result.AppendLine("\tEnum: MySuperEnum;"); result.AppendLine("\tStringEnum: string;"); result.AppendLine("\tstringEnums: Array<string>;"); result.AppendLine("\tSomething: DoSomething;"); result.AppendLine("\tSomethingArray: Array<DoSomething>;"); result.AppendLine("\tSomethingEnumerable: Array<DoSomething>;"); result.AppendLine("\tDictionary: Array<Dictionary>;"); result.AppendLine("}"); result.AppendLine(); TypeScriptModelsBuilder builder = new TypeScriptModelsBuilder(new[] { new TypeScriptModel("DoSomething", typeof(DoSomethingModel)), new TypeScriptModel("Dictionary", typeof(DictionaryModel)), new TypeScriptModel("MySuperEnum", typeof(MySuperEnum)), new TypeScriptModel("IPerson", typeof(PersonModel)), new TypeScriptModel("ICar", typeof(Car)) }); Assert.AreEqual(result.ToString(), builder.Build().ToString()); }