示例#1
0
        public void TestEnumGeneration()
        {
            // arrange
            var draftEnumMember = new TypeScriptEnumMember {
                Name = "Draft"
            };
            var finalEnumMember = new TypeScriptEnumMember {
                Name = "Final"
            };
            var typeScriptEnum = new TypeScriptEnum
            {
                Name    = "BillStatus",
                Members = new List <TypeScriptEnumMember> {
                    draftEnumMember, finalEnumMember
                }
            };
            var output             = new StringWriter();
            var expectOutputWriter = new StringWriter();

            expectOutputWriter.WriteLine("enum BillStatus {");
            draftEnumMember.Generate(expectOutputWriter, false);
            finalEnumMember.Generate(expectOutputWriter, true);
            expectOutputWriter.WriteLine("}");

            // act
            typeScriptEnum.Generate(output);

            // assert
            Assert.Equal(expectOutputWriter.GetStringBuilder().ToString(), output.GetStringBuilder().ToString());
        }
示例#2
0
        public void TestEnumMemberWithValueIsLastMember()
        {
            // arrange
            var typeScriptEnumMember = new TypeScriptEnumMember {
                Name = "None", Value = 0
            };
            var output   = new StringWriter();
            var expected = "  None = 0" + Environment.NewLine;

            // act
            typeScriptEnumMember.Generate(output, isLastOne: true);

            // assert
            Assert.Equal(expected, output.GetStringBuilder().ToString());
        }
示例#3
0
        private bool TryGetEnumMember(CodeVariable variable, TypeContext typeContext, int index, out TypeScriptEnumMember member)
        {
            var values = GetMemberValues(variable, typeContext);
            member = new TypeScriptEnumMember
            {
                Name = values.Name,
                FullName = variable.FullName,
                Ignore = values.Ignore,
                Value = variable.InitExpression == null ? index : Int32.Parse(variable.InitExpression.ToString()),
                Comment = variable.Comment,
                DocComment = variable.DocComment
            };

            if (member.Name == null)
            {
                // The property is not explicit marked with TypeScriptMemberAttribute
                if (variable.Access != vsCMAccess.vsCMAccessPublic)
                    // remove non-public default properties
                    return false;
                member.Name = variable.Name;
            }

            if (member.Ignore)
            {
                return false;
            }

            if (values.CamelCase && values.Name == null)
                member.Name = member.Name.Substring(0, 1).ToLowerInvariant() + member.Name.Substring(1);

            return true;
        }