public void ConvertSingleClassToInterface() { var propertyNames = new string[] { "MyPropertyString", "MyPropertyInt", "EnumProperty", "NullableDateTime", "GuidProperty" }; var model = new TypescriptModel(); var result = new TypescriptClassesAsInterfaceCreator().GetTypeFor(typeof(SomeClass), model); result.Match(primitive => Assert.Fail(), tsclass => Assert.Fail(), tsInerface => { Assert.AreEqual(tsInerface.Name, typeof(SomeClass).Name); tsInerface.Content.Match(functionSignature => Assert.Fail(), property => Assert.IsTrue(propertyNames.Contains(property.Name))); }, tsenum => Assert.Fail(), tsTypeParam => Assert.Fail()); }
public void TestConvertingModelToInterfacesAndWriteAsString() { var typescriptTypeCreator = new TypescriptClassesAsInterfaceCreator(); var typesToConvert = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(x => x.DefinedTypes) .Where(x => x.Namespace != null && x.Namespace.StartsWith("TypedDotNet.Test.TestModel")); var model = typescriptTypeCreator.CreateTypescriptModelFor(typesToConvert); var writer = new TypescriptWriter(); foreach (var typescriptType in model.knownTypes) { typescriptType.Value.Match( x => { }, x => writer.WriteClass(x), x => writer.WriteInterface(x), x => writer.WriteEnum(x), x => { } ); } var result = writer.ToString(); }