Beispiel #1
0
        public void Enumerable(string propertyTypeFormat, string expectedTypescriptType, string memberType, bool generateDeclarations, string typeType)
        {
            var input = string.Format(@"
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Foo
{{
  public {1} Test
  {{
    {2}{0} Prop {{ get; set; }}
  }}
}}
", string.Format(propertyTypeFormat, memberType), typeType, typeType != "interface" ? "public " : "");

            var processor = new TypeScriptProcessor(new [] { input }, new[] { typeof(HashSet <>).Assembly.Location });
            var output    = processor.GetTypescriptAsString(generateDeclarations);

            Assert.Equal(string.Format(@"{1}interface Test {{
  Prop?: {0}[];
}}

", expectedTypescriptType, generateDeclarations ? "" : "export "), output);
        }
Beispiel #2
0
        public void JsonProperty(string typescriptType, string cSharpType, bool generateDeclarations, string typeType)
        {
            var input = string.Format(@"
using System;
using Newtonsoft.Json;

namespace Foo
{{
  public {1} Test
  {{
    [JsonProperty(""foo"")]
    {2}{0} Prop {{ get; set; }}
  }}
}}
", cSharpType, typeType, typeType != "interface" ? "public " : "");

            var processor = new TypeScriptProcessor(new[] { input }, new[] { typeof(JsonPropertyAttribute).Assembly.Location });
            var output    = processor.GetTypescriptAsString(generateDeclarations);

            Assert.Equal(string.Format(@"{2}interface Test {{
  foo{1}: {0};
}}

", typescriptType, cSharpType.ToLower().Contains("string") ? "?" : "", generateDeclarations ? "" : "export "), output);
        }
Beispiel #3
0
        public void Enum()
        {
            var input     = @"
public enum Foo
{
  Bar,
  B,
  Baz = 4,
  Boo = 5,
  Foo = 4,
  A
}";
            var processor = new TypeScriptProcessor(input);
            var output    = processor.GetTypescriptAsString(false);

            Assert.Equal(@"export enum Foo {
  Bar = 0,
  B = 1,
  Baz = 4,
  Boo = 5,
  Foo = 4,
  A = 5
}

", output);
        }
Beispiel #4
0
        public void Property(
            string typescriptType,
            string cSharpType,
            bool generateDeclarations,
            string typeType)
        {
            var input = string.Format(@"
using System;

namespace Foo
{{
  public {1} Test
  {{
    {2}{0} Prop {{ get; set; }}
  }}
  public {1} Test2
  {{
    {2}Test Prop {{ get; set; }}
  }}
}}
", cSharpType, typeType, typeType != "interface" ? "public " : "");

            var processor = new TypeScriptProcessor(input);
            var output    = processor.GetTypescriptAsString(generateDeclarations);

            Assert.Equal(string.Format(@"{2}interface Test {{
  Prop{1}: {0};
}}

{2}interface Test2 {{
  Prop{3}: Test;
}}

", typescriptType, cSharpType.ToLower().Contains("string") ? "?" : "", generateDeclarations ? "" : "export ", typeType == "struct" ? "" : "?"), output);
        }
Beispiel #5
0
        public void Dictionary(string typescriptType, string cSharpType, bool generateDeclarations)
        {
            var input = string.Format(@"
using System.Collections.Generic;

namespace Foo
{{
  public class Test : Dictionary<int, {0}>
  {{
  }}
  public class Test2 : Dictionary<string, {0}>
  {{
  }}
  public class Test3 : Test2
  {{
    public {0} Prop {{ get; set; }}
    public Dictionary<string, {0}> Dict {{ get; set; }}
  }}
}}
", cSharpType);

            var processor = new TypeScriptProcessor(input);
            var output    = processor.GetTypescriptAsString(generateDeclarations);

            Assert.Equal(string.Format(@"{2}interface Test {{
  [key: number]: {0};
}}

{2}interface Test2 {{
  [key: string]: {0};
}}

{2}interface Test3 extends Test2 {{
  Prop{1}: {0};
  Dict?: {{ [key: string]: {0}; }};
}}

", typescriptType, cSharpType.ToLower().Contains("string") ? "?" : "", generateDeclarations ? "" : "export "), output);
        }
Beispiel #6
0
        public void MultipleFieldStruct(string typescriptType, string cSharpType, bool generateDeclarations, string typeType)
        {
            var input = string.Format(@"
using System;

namespace Foo
{{
  public {1} Test
  {{
    {2}{0} x, y;
  }}
}}
", cSharpType, typeType, typeType != "interface" ? "public " : "");

            var processor = new TypeScriptProcessor(input);
            var output    = processor.GetTypescriptAsString(generateDeclarations);

            Assert.Equal(string.Format(@"{2}interface Test {{
  x{1}: {0};
  y{1}: {0};
}}

", typescriptType, cSharpType.ToLower().Contains("string") ? "?" : "", generateDeclarations ? "" : "export "), output);
        }