diff --git a/samples/ObjectAssertions.Sample/Program.cs b/samples/ObjectAssertions.Sample/Program.cs index 92bc4b6..f082611 100644 --- a/samples/ObjectAssertions.Sample/Program.cs +++ b/samples/ObjectAssertions.Sample/Program.cs @@ -23,9 +23,6 @@ public record ObjectToAssert : Base public int? NullableNumber { get; set; } = 5; public NestedObject NestedObjectValue { get; set; } = new NestedObject(); - [Obsolete] - public string ObsoleteValue { get; set; } = "I'm obsolete"; - public enum ExampleEnum { Option1, Option2, Option3 }; public record NestedObject(int NestedInt = 5, string NestedString = "ubuaa"); @@ -62,7 +59,6 @@ public void HowTo() IntegerNumber = i => Assert.Equal(30, i), NullableNumber = n => Assert.Equal(5, n), StringValue = s => Assert.Equal("Hello world", s), - ObsoleteValue = o => Assert.Equal("I'm obsolete", o), // Obsolete warnings are ignored in generated code NestedObjectValue = n => new NestedObjectAssertions(n) { NestedInt = ObjectAssertionsHelpers.Ignore("Out of test scope"), diff --git a/samples/ObjectAssertions.Sample/Tests/ObsoleteMembers.cs b/samples/ObjectAssertions.Sample/Tests/ObsoleteMembers.cs new file mode 100644 index 0000000..833c974 --- /dev/null +++ b/samples/ObjectAssertions.Sample/Tests/ObsoleteMembers.cs @@ -0,0 +1,45 @@ +using ObjectAssertions.Abstractions; +using System; +using Xunit; +using static ObjectAssertions.Sample.ObjectToAssert; + +namespace ObjectAssertions.Sample +{ + // This is data model in your program + public record ObjectWithObsoleteMembersToAssert + { + + [Obsolete] + public string ObsoleteValue { get; set; } = "I'm obsolete"; + + [Obsolete("Obsolete with message has different warning")] + public string ObsoleteValueWithText { get; set; } = "I'm obsolete"; + } + + // This is test utility for generating assertions + public partial class ObsoleteAssertions : IAssertsAllPropertiesOf + { + + } + + // This is your tests class + public class ObsoleteAssertionTests + { + [Fact] + public void HowTo() + { + var testObject = new ObjectWithObsoleteMembersToAssert(); + + + var assertions = new ObsoleteAssertions(testObject) + { + ObsoleteValue = o => Assert.Equal("I'm obsolete", o), // Obsolete warnings are ignored in generated code + ObsoleteValueWithText = o => Assert.Equal("I'm obsolete", o) // Obsolete warnings are ignored in generated code + }; + + + assertions.Assert(); + } + + } +} \ No newline at end of file diff --git a/src/ObjectAssertions/Generator/ClassGenerator.cs b/src/ObjectAssertions/Generator/ClassGenerator.cs index a44b96b..226ef91 100644 --- a/src/ObjectAssertions/Generator/ClassGenerator.cs +++ b/src/ObjectAssertions/Generator/ClassGenerator.cs @@ -86,7 +86,11 @@ private void GenerateAutogeneratedHeader(IndentedTextWriter sourceWriter) // This code was generated by a source gnerator. // //------------------------------------------------------------------------------ + + // Disable obsolete members #pragma warning disable CS0612 + #pragma warning disable CS0618 + #pragma warning disable CS0619 """; sourceWriter.WriteLine(header); }