示例#1
0
 public DataAnnoAttributeService(Microsoft.VisualStudio.OLE.Interop.IServiceProvider sp,
                                 DataAttributeAdder adder, DataAttributeRemover remover, DataAttributeRewriter rewriter)
 {
     _serviceProvider = sp;
     //TODO: move to an injection
     _adder    = adder;
     _remover  = remover;
     _rewriter = rewriter;
 }
        public void AddsAttributesWithCorrectOrderWhenAttributesAlreadyExists()
        {
            var tree     = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestRemoveDataAttributes.cs"));
            var rewriter = new DataAttributeRemover();

            var rewrittenRoot = rewriter.Visit(tree.GetRoot());

            var output = rewrittenRoot.GetText().ToString();

            output.Should().NotContain("System.Runtime.Serialization");
            output.Should().NotContain("[DataContract]");
            output.Should().NotContain("[KnownType");
            output.Should().NotContain("[IgnoreDataMember]");
            output.Should().NotContain("[EnumMember]");
            output.Should().NotContain(@"[DataMember(Order = 1, Name=""Test"")]");
            output.Should().NotContain("[DataMember(Order = 2)]");
            output.Should().NotContain(@"DataMember(Name = ""test12"")");

            output.Should().Contain("[Required]");

            output.Should().Contain("[Serializable]");
        }