public void AddsAttributesAndKeepCommentsInTack()
        {
            var tree     = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestClassWithXmlComments.cs"));
            var rewriter = new DataAttributeAdder();

            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)]");
            output.Should().Contain("[DataMember(Order = 2)]");

            output.Should().Contain("        /// </value>");
            output.Should().Contain("        [DataMember(Order = 1)]");
            output.Should().Contain("        public int MyProperty { get; set; }");

            //This verifies spacing is correct
            output.Should().Contain(@"
        /// <summary> Comments not wrapped </summary>
        /// <value> My property. </value>
        [DataMember(Order = 1)]
        public int MyProperty { get; set; }");
        }
Exemplo n.º 2
0
        public string AddAttributes(string fileContents)
        {
            var tree = CSharpSyntaxTree.ParseText(fileContents);

            var root          = tree.GetRoot();
            var rewrittenRoot = _adder.Visit(root);

            return(rewrittenRoot.GetText().ToString());
        }
        public void AddsAttributesWithCorrectOrderWhenFileHasWierdFormatting()
        {
            var tree          = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestWierdFormatting.cs"));
            var rewriter      = new DataAttributeAdder();
            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)]");
            output.Should().Contain("[DataMember(Order = 2)]");
        }
        public void AddsUsingWhenNoneExist()
        {
            var tree     = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestClassNoUsings.cs"));
            var rewriter = new DataAttributeAdder();

            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)]");
            output.Should().Contain("[DataMember(Order = 2)]");
        }
        public void AddsAttributesWhenFileIsEnumWithExistingAttributes()
        {
            var tree          = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestEnumWithDataAttributes.cs"));
            var rewriter      = new DataAttributeAdder();
            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("[EnumMember]");
            _fixture.AssertOutputContainsCount(source, "[EnumMember]", 5);
        }
        public void AddsAttributesWithCorrectOrderWhenAttributesAlreadyExists()
        {
            var tree     = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestCodeWithDataMemberAttributes.cs"));
            var rewriter = new DataAttributeAdder();

            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)]");
            output.Should().Contain("[DataMember(Order = 2)]");
            output.Should().Contain("[DataMember(Order = 3)]");
            output.Should().Contain("[DataMember(Name = \"Test\")]");
        }
        public void AddsAttributesWithCorrectOrderWhenFileHasProtoIgnores()
        {
            var tree          = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestIgnoreDataMember.cs"));
            var rewriter      = new DataAttributeAdder();
            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(Order = 14)]");
            output.Should().Contain("[DataMember(Order = 16)]");
            _fixture.AssertOutputContainsCount(source, "[IgnoreDataMember]", 2);
        }
        public void AddsAttributesForProtoBuf()
        {
            var tree     = CSharpSyntaxTree.ParseText(_fixture.LoadTestFile(@"./Mocks/TestClassPlain.cs"));
            var rewriter = new DataAttributeAdder();

            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("[Required]");
            output.Should().Contain("[DataMember(Order = 1)]");
            output.Should().Contain("[DataMember(Order = 2)]");

            _fixture.AssertOutputContainsCount(source, "DataMember", 2);
            _fixture.AssertOutputContainsCount(source, "Required", 1);
        }