@@ -68,6 +68,28 @@ public void AdaptClassToRecord()
6868 object . ReferenceEquals ( _destination , _result ) . ShouldBeFalse ( ) ;
6969 }
7070
71+ [ TestMethod ]
72+ public void AdaptToSealtedRecord ( )
73+ {
74+ var _sourceRecord = new TestRecord ( ) { X = 2000 } ;
75+ var _destinationSealtedRecord = new TestSealedRecord ( ) { X = 3000 } ;
76+ var _RecordResult = _sourceRecord . Adapt ( _destinationSealtedRecord ) ;
77+
78+ _RecordResult . X . ShouldBe ( 2000 ) ;
79+ object . ReferenceEquals ( _destinationSealtedRecord , _RecordResult ) . ShouldBeFalse ( ) ;
80+ }
81+
82+ [ TestMethod ]
83+ public void AdaptToSealtedPositionalRecord ( )
84+ {
85+ var _sourceRecord = new TestRecord ( ) { X = 2000 } ;
86+ var _destinationSealtedPositionalRecord = new TestSealedRecordPositional ( 4000 ) ;
87+ var _RecordResult = _sourceRecord . Adapt ( _destinationSealtedPositionalRecord ) ;
88+
89+ _RecordResult . X . ShouldBe ( 2000 ) ;
90+ object . ReferenceEquals ( _destinationSealtedPositionalRecord , _RecordResult ) . ShouldBeFalse ( ) ;
91+ }
92+
7193 [ TestMethod ]
7294 public void AdaptClassToClassPublicCtrIsNotInstanse ( )
7395 {
@@ -408,5 +430,16 @@ record struct TestRecordStruct
408430 public int X { set ; get ; }
409431 }
410432
433+ /// <summary>
434+ /// Different Checked Constructor Attribute From Spec
435+ /// https://learn.microsoft.com/ru-ru/dotnet/csharp/language-reference/proposals/csharp-9.0/records#copy-and-clone-members
436+ /// </summary>
437+ sealed record TestSealedRecord ( )
438+ {
439+ public int X { get ; set ; }
440+ }
441+
442+ sealed record TestSealedRecordPositional ( int X ) ;
443+
411444 #endregion TestClasses
412445}
0 commit comments