EncoderReplacementFallbackTest.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. //
  2. // EncoderReplacementFallback.cs
  3. //
  4. // Author:
  5. // Atsushi Enomoto <[email protected]>
  6. //
  7. // Copyright (C) 2005 Novell, Inc. http://www.novell.com
  8. //
  9. #if NET_2_0
  10. using System;
  11. using System.IO;
  12. using System.Text;
  13. using NUnit.Framework;
  14. namespace MonoTests.System.Text
  15. {
  16. [TestFixture]
  17. public class EncoderReplacementFallbackTest
  18. {
  19. [Test]
  20. public void Defaults ()
  21. {
  22. EncoderReplacementFallback f =
  23. new EncoderReplacementFallback ();
  24. Assert.AreEqual ("?", f.DefaultString, "#1");
  25. Assert.AreEqual (1, f.MaxCharCount, "#2");
  26. f = new EncoderReplacementFallback (String.Empty);
  27. Assert.AreEqual (String.Empty, f.DefaultString, "#3");
  28. Assert.AreEqual (0, f.MaxCharCount, "#4");
  29. f = Encoding.UTF8.EncoderFallback as EncoderReplacementFallback;
  30. Assert.IsNotNull (f, "#5");
  31. Assert.AreEqual (String.Empty, f.DefaultString, "#6");
  32. Assert.AreEqual (0, f.MaxCharCount, "#7");
  33. f = new MyEncoding ().EncoderFallback as EncoderReplacementFallback;
  34. Assert.IsNotNull (f, "#8");
  35. Assert.AreEqual (String.Empty, f.DefaultString, "#9");
  36. Assert.AreEqual (0, f.MaxCharCount, "#10");
  37. f = EncoderFallback.ReplacementFallback as EncoderReplacementFallback;
  38. Assert.AreEqual ("?", f.DefaultString, "#11");
  39. Assert.AreEqual (1, f.MaxCharCount, "#12");
  40. }
  41. [Test]
  42. [ExpectedException (typeof (InvalidOperationException))]
  43. public void DontChangeReadOnlyUTF8EncoderFallback ()
  44. {
  45. Encoding.UTF8.EncoderFallback =
  46. new EncoderReplacementFallback ();
  47. }
  48. [Test]
  49. [ExpectedException (typeof (InvalidOperationException))]
  50. public void DontChangeReadOnlyCodePageEncoderFallback ()
  51. {
  52. Encoding.GetEncoding (932).EncoderFallback =
  53. new EncoderReplacementFallback ();
  54. }
  55. [Test]
  56. // Don't throw an exception
  57. public void SetEncoderFallback ()
  58. {
  59. new MyEncoding ().EncoderFallback =
  60. new EncoderReplacementFallback ();
  61. new MyEncoding (1).EncoderFallback =
  62. new EncoderReplacementFallback ();
  63. Encoding.Default.GetEncoder ().Fallback =
  64. new EncoderReplacementFallback ();
  65. }
  66. [Test]
  67. [ExpectedException (typeof (ArgumentNullException))]
  68. public void EncodingSetNullEncoderFallback ()
  69. {
  70. new MyEncoding ().EncoderFallback = null;
  71. }
  72. [Test]
  73. [ExpectedException (typeof (ArgumentNullException))]
  74. public void EncoderSetNullFallback ()
  75. {
  76. Encoding.Default.GetEncoder ().Fallback = null;
  77. }
  78. }
  79. }
  80. #endif