public string ReorderAttributes(string fileContents) { var tree = CSharpSyntaxTree.ParseText(fileContents); var rewrittenRoot = _rewriter.Visit(tree.GetRoot()); return(rewrittenRoot.GetText().ToString()); }
public void RewritesEnumAttributesFileHasProtoIgnores() { var tree = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestEnumWithProtoIgnore.cs")); var rewriter = new ProtoAttributeRewriter(); var rewrittenRoot = rewriter.Visit(tree.GetRoot()); var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); output.Should().Contain("ProtoBuf"); output.Should().Contain("[ProtoContract]"); _fixture.AssertOutputContainsCount(source, "[ProtoIgnore]", 2); _fixture.AssertOutputContainsCount(source, "[ProtoEnum]", 3); }
public void RewritesAttributesWithCorrectOrderWhenAttributesAlreadyExists() { var tree = CSharpSyntaxTree.ParseText(_codeWithAttributes); var rewriter = new ProtoAttributeRewriter(); var rewrittenRoot = rewriter.Visit(tree.GetRoot()); var output = rewrittenRoot.GetText().ToString(); output.Should().Contain("ProtoBuf"); output.Should().Contain("[ProtoContract]"); output.Should().Contain(@"[ProtoMember(1, Name=""Test"")]"); output.Should().Contain("[ProtoMember(2)]"); output.Should().Contain("[ProtoMember(3)]"); output.Should().Contain("[ProtoMember(4)]"); }