public ProtoAttributeService(Microsoft.VisualStudio.OLE.Interop.IServiceProvider sp, ProtoAttributeAdder adder, ProtoAttributeRemover remover, ProtoAttributeRewriter rewriter) { _serviceProvider = sp; //TODO: move to an injection _adder = adder; _remover = remover; _rewriter = rewriter; }
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)]"); }