public void TestSupports()
        {
            var provider = new TypeScriptCodeProvider();

            Assert.False(provider.Supports(GeneratorSupport.GotoStatements));
            Assert.True(provider.Supports(GeneratorSupport.GenericTypeDeclaration));
        }
        public void TestIsValidIdentifier()
        {
            var provider = new TypeScriptCodeProvider();

            Assert.True(provider.IsValidIdentifier("abcde"));
            Assert.False(provider.IsValidIdentifier("if"));
            Assert.True(provider.IsValidIdentifier("IF"));
        }
예제 #3
0
        /// <summary>
        /// Save C# codes into a file.
        /// </summary>
        public void Save()
        {
            var provider = new TypeScriptCodeProvider(jsOutput.AsModule);

            using (StreamWriter writer = new StreamWriter(jsOutput.JSPath))
            {
                provider.GenerateCodeFromCompileUnit(TargetUnit, writer, TsCodeGenerationOptions.Instance);
            }
        }
        public void TestValidateIdentifier()
        {
            var provider = new TypeScriptCodeProvider();

            Assert.Throws <ArgumentException>(() => provider.ValidateIdentifier("for"));


            provider.ValidateIdentifier("abc_de123");
        }
예제 #5
0
        /// <summary>
        /// Write CodeDOM into TS codes to TextWriter
        /// </summary>
        /// <param name="writer"></param>
        void WriteCode(TextWriter writer)
        {
            if (writer == null)
            {
                throw new ArgumentNullException(nameof(writer), "No TextWriter instance is defined.");
            }

            using TypeScriptCodeProvider provider = new TypeScriptCodeProvider(jsOutput.AsModule);
            provider.GenerateCodeFromCompileUnit(CodeCompileUnit, writer, TsCodeGenerationOptions.Instance);
        }
예제 #6
0
        public void TestCodeArgumentReferenceExpression()
        {
            var e       = new CodeArgumentReferenceExpression("myParameterName");
            var builder = new StringBuilder();
            var o       = new CodeGeneratorOptions()
            {
                IndentString = "    "
            };

            using (var w = new StringWriter(builder))
            {
                var provider = new TypeScriptCodeProvider();
                provider.GenerateCodeFromExpression(e, w, o);
            }
            Assert.Equal("myParameterName", builder.ToString());
        }
예제 #7
0
        static void AssertCodeTypeDeclaration(CodeTypeDeclaration e, string expected)
        {
            var builder = new StringBuilder();
            var options = new CodeGeneratorOptions()
            {
                IndentString = "\t"
            };

            using (var textWriter = new StringWriter(builder))
            {
                ICodeGenerator gen = new TypeScriptCodeProvider(false);
                gen.GenerateCodeFromType(e, textWriter, options);
            }
            var s = builder.ToString();

            Assert.Equal(expected, s);
        }
예제 #8
0
        static void TestCodeStatement(CodeStatement e, string expected)
        {
            var builder = new StringBuilder();
            var o       = new CodeGeneratorOptions()
            {
                IndentString = "    "
            };

            using (var w = new StringWriter(builder))
            {
                var provider = new TypeScriptCodeProvider(false);
                provider.GenerateCodeFromStatement(e, w, o);
            }
            var s = builder.ToString();

            Assert.Equal(expected, s);
        }