EncoderReplacementFallbackBufferTest.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. //
  2. // EncoderReplacementFallbackBuffer.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. using Buffer = System.Text.EncoderReplacementFallbackBuffer;
  15. namespace MonoTests.System.Text
  16. {
  17. [TestFixture]
  18. public class EncoderReplacementFallbackBufferTest
  19. {
  20. private Buffer NewInstance ()
  21. {
  22. return new Buffer (new EncoderReplacementFallback ());
  23. }
  24. [Test]
  25. public void FallbackEmptyDefault ()
  26. {
  27. Buffer b = NewInstance ();
  28. Assert.IsTrue (b.Fallback ('X', 0), "#0");
  29. Assert.IsFalse (b.MovePrevious (), "#1");
  30. Assert.AreEqual (1, b.Remaining, "#2");
  31. Assert.AreEqual ('?', b.GetNextChar (), "#3");
  32. Assert.AreEqual (0, b.Remaining, "#4");
  33. // the string is already consumed.
  34. Assert.AreEqual (char.MinValue, b.GetNextChar (), "#5");
  35. }
  36. [Test]
  37. public void FallbackEmptyForEncodingUTF8 ()
  38. {
  39. Buffer b = Encoding.UTF8.EncoderFallback.CreateFallbackBuffer () as Buffer;
  40. Assert.IsTrue (b.Fallback ('X', 0), "#1");
  41. Assert.IsFalse (b.MovePrevious (), "#2");
  42. Assert.AreEqual (1, b.Remaining, "#3");
  43. // the string does not exist.
  44. Assert.AreEqual ('\uFFFD', b.GetNextChar (), "#4");
  45. }
  46. [Test]
  47. public void FallbackSequential ()
  48. {
  49. Buffer b = NewInstance ();
  50. b.Fallback ('X', 0);
  51. b.GetNextChar ();
  52. b.Fallback ('X', 0);
  53. }
  54. [Test]
  55. [ExpectedException (typeof (ArgumentException))]
  56. public void FallbackRecursiveError ()
  57. {
  58. Buffer b = NewInstance ();
  59. b.Fallback ('X', 0);
  60. b.Fallback ('X', 0);
  61. }
  62. [Test]
  63. [Category ("NotWorking")]
  64. public void Iterate ()
  65. {
  66. Assert.AreEqual ('\0', Encoding.UTF8.EncoderFallback
  67. .CreateFallbackBuffer ().GetNextChar (), "#1");
  68. Buffer b = NewInstance ();
  69. // Assert.AreEqual (1, b.Remaining, "#2");
  70. // Assert.AreEqual ('?', b.GetNextChar (), "#3");
  71. Assert.AreEqual (0, b.Remaining, "#4");
  72. Assert.AreEqual ('\0', b.GetNextChar (), "#5");
  73. // Assert.IsTrue (b.MovePrevious (), "#6");
  74. // Assert.AreEqual (1, b.Remaining, "#7");
  75. Assert.IsFalse (b.MovePrevious (), "#8");
  76. // Assert.AreEqual ('?', b.GetNextChar (), "#9");
  77. }
  78. }
  79. }
  80. #endif