Example #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;
 }
Example #2
0
        public void RewritesAttributesWithOrderPropertyWhenMissing()
        {
            var tree          = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestCodeWithDataMemberAttributesMissingOrderProperties.cs"));
            var rewriter      = new DataAttributeRewriter();
            var rewrittenRoot = rewriter.Visit(tree.GetRoot());

            var output = rewrittenRoot.GetText().ToString();
            var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

            output.Should().Contain("System.Runtime.Serialization");
            output.Should().Contain("[DataContract]");
            _fixture.AssertOutputContainsCount(source, "Order", 5); //includes 1 for the name of class
        }
Example #3
0
        public void RewritesEnumAttributesWhenFileHasDataMemeberIgnores()
        {
            var tree          = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestEnumWithDataMemberIgnore.cs"));
            var rewriter      = new DataAttributeRewriter();
            var rewrittenRoot = rewriter.Visit(tree.GetRoot());

            var output = rewrittenRoot.GetText().ToString();
            var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

            output.Should().Contain("System.Runtime.Serialization");
            output.Should().Contain("[DataContract]");
            _fixture.AssertOutputContainsCount(source, "[IgnoreDataMember]", 2);
            _fixture.AssertOutputContainsCount(source, "[EnumMember]", 3);
        }
Example #4
0
        public void RewritesAttributesWithCorrectOrderWhenAttributesAlreadyExists()
        {
            var tree     = CSharpSyntaxTree.ParseText(_codeWithAttributes);
            var rewriter = new DataAttributeRewriter();

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

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

            output.Should().Contain("System.Runtime.Serialization");
            output.Should().Contain("[DataContract]");
            output.Should().Contain(@"[DataMember(Order = 1, Name=""Test"")]");
            output.Should().Contain("[DataMember(Order = 2)]");
            output.Should().Contain("[DataMember(Order = 3)]");
            output.Should().Contain("[DataMember(Order = 4)]");
        }
Example #5
0
        public void RewritesAttributesWithCorrectOrderWhenAttributeExistsWithoutOrderProperty()
        {
            var tree          = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestMissingOrderPropertyAndWeirdSpacing.cs"));
            var rewriter      = new DataAttributeRewriter();
            var rewrittenRoot = rewriter.Visit(tree.GetRoot());

            var output = rewrittenRoot.GetText().ToString();
            var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

            output.Should().Contain("System.Runtime.Serialization");
            output.Should().Contain("[DataContract]");
            output.Should().Contain("[DataMember(Order = 1)]");
            output.Should().Contain("[DataMember(Order = 2)]");
            output.Should().Contain(@"[DataMember(Name =""test"",Order = 3)]");
            output.Should().Contain("[DataMember(Order = 4)]");
            _fixture.AssertOutputContainsCount(source, "[IgnoreDataMember]", 1);
        }