チェンジセット 1655 (default、framework/trunk/CoreTest/Sources/IO/IOUtilityTest.cs)
- 日時:
- 2024/08/08 1:13:45 (2ヵ月前)
- ファイル:
-
- 1個の更新
凡例:
- 未変更
- 追加
- 削除
-
framework/trunk/CoreTest/Sources/IO/IOUtilityTest.cs
r1575 r1655 679 679 680 680 /// <summary> 681 /// <see cref="IOUtility.CreateCloseExceptionIgnorableStream"/> をテストします。 682 /// </summary> 683 [Test] 684 public void TestCreateCloseExceptionIgnorableStream() 685 { 686 Action<bool, Action<Stream>> action = delegate(bool useWrapper, Action<Stream> callback) 687 { 688 using (MemoryStream rootStream = new MemoryStream()) 689 { 690 Stream targetStream = new BufferedStream(rootStream, 0x1000); 691 if (useWrapper) 692 { 693 targetStream = IOUtility.CreateCloseExceptionIgnorableStream(targetStream); 694 } 695 696 try 697 { 698 targetStream.WriteByte(1); 699 } 700 finally 701 { 702 // 元のストリームを破棄 703 rootStream.Close(); 704 705 // BufferedStream.Close() では書き込まれたデータがある場合 Flush() を呼ぶので例外が発生する 706 callback(targetStream); 707 } 708 } 709 }; 710 711 // Close() で例外が発生することを確認 712 action( 713 false, 714 delegate(Stream stream) 715 { 716 Assert.That( 717 stream.Close, 718 Throws.TypeOf<ObjectDisposedException>(), 719 "Normal close"); 720 }); 721 722 // Close() で例外が発生しないことを確認 723 action( 724 true, 725 delegate(Stream stream) 726 { 727 stream.Close(); 728 }); 729 } 730 731 /// <summary> 681 732 /// 再解析ポイントを作成します。 682 733 /// </summary>
※ 詳しい使い方は
TracChangeset を参照してください。