2 // DecoderReplacementFallbackBuffer.cs
5 // Atsushi Enomoto <atsushi@ximian.com>
7 // Copyright (C) 2005 Novell, Inc. http://www.novell.com
15 using NUnit.Framework;
17 using Buffer = System.Text.DecoderReplacementFallbackBuffer;
19 namespace MonoTests.System.Text
22 public class DecoderReplacementFallbackBufferTest
24 private Buffer NewInstance ()
26 return new Buffer (new DecoderReplacementFallback ());
30 public void FallbackEmptyDefault ()
32 Buffer b = NewInstance ();
33 Assert.IsTrue (b.Fallback (new byte [] {}, 0), "#0");
34 Assert.IsFalse (b.MovePrevious (), "#1");
35 Assert.AreEqual (1, b.Remaining, "#2");
36 Assert.AreEqual ('?', b.GetNextChar (), "#3");
37 Assert.AreEqual (0, b.Remaining, "#4");
38 // the string is already consumed.
39 Assert.AreEqual (char.MinValue, b.GetNextChar (), "#5");
43 public void FallbackEmptyForEncodingUTF8 ()
45 Buffer b = Encoding.UTF8.DecoderFallback.CreateFallbackBuffer () as Buffer;
46 Assert.IsFalse (b.Fallback (new byte [] {}, 0), "#1");
47 Assert.IsFalse (b.MovePrevious (), "#2");
48 Assert.AreEqual (0, b.Remaining, "#3");
49 // the string does not exist.
50 Assert.AreEqual (char.MinValue, b.GetNextChar (), "#4");
54 public void FallbackSequential ()
56 Buffer b = NewInstance ();
57 b.Fallback (new byte [] {}, 0);
59 b.Fallback (new byte [] {}, 0);
63 [ExpectedException (typeof (ArgumentException))]
64 public void FallbackRecursiveError ()
66 Buffer b = NewInstance ();
67 b.Fallback (new byte [] {}, 0);
68 b.Fallback (new byte [] {}, 0);
72 [Category ("NotWorking")]
73 public void Iterate ()
75 Assert.AreEqual ('\0', Encoding.UTF8.DecoderFallback
76 .CreateFallbackBuffer ().GetNextChar (), "#1");
78 Buffer b = NewInstance ();
79 // Assert.AreEqual (1, b.Remaining, "#2");
80 // Assert.AreEqual ('?', b.GetNextChar (), "#3");
81 Assert.AreEqual (0, b.Remaining, "#4");
82 Assert.AreEqual ('\0', b.GetNextChar (), "#5");
83 // Assert.IsTrue (b.MovePrevious (), "#6");
84 // Assert.AreEqual (1, b.Remaining, "#7");
85 Assert.IsFalse (b.MovePrevious (), "#8");
86 // Assert.AreEqual ('?', b.GetNextChar (), "#9");