public void InjectDirectiveTargetExtension_WritesPropertyWithLinePragma_WhenSourceIsSet()
        {
            // Arrange
            var context = TestCodeRenderingContext.CreateRuntime();
            var target  = new InjectTargetExtension();
            var node    = new InjectIntermediateNode()
            {
                TypeName   = "PropertyType<ModelType>",
                MemberName = "PropertyName",
                Source     = new SourceSpan(
                    filePath: "test-path",
                    absoluteIndex: 0,
                    lineIndex: 1,
                    characterIndex: 1,
                    length: 10)
            };

            // Act
            target.WriteInjectProperty(context, node);

            // Assert
            Assert.Equal(Environment.NewLine +
                         "#nullable restore" + Environment.NewLine +
                         "#line 2 \"test-path\"" + Environment.NewLine +
                         "[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]" + Environment.NewLine +
                         "public PropertyType<ModelType> PropertyName { get; private set; }" + Environment.NewLine + Environment.NewLine +
                         "#line default" + Environment.NewLine +
                         "#line hidden" + Environment.NewLine +
                         "#nullable disable" + Environment.NewLine,
                         context.CodeWriter.GenerateCode());
        }
        public void InjectDirectiveTargetExtension_WritesProperty()
        {
            // Arrange
            var context = TestCodeRenderingContext.CreateRuntime();
            var target  = new InjectTargetExtension();
            var node    = new InjectIntermediateNode()
            {
                TypeName   = "PropertyType",
                MemberName = "PropertyName",
            };

            // Act
            target.WriteInjectProperty(context, node);

            // Assert
            Assert.Equal(
                "[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]" + Environment.NewLine +
                "public PropertyType PropertyName { get; private set; }" + Environment.NewLine,
                context.CodeWriter.GenerateCode());
        }