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()); }
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()); }
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; }