| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- //
- // EncoderReplacementFallbackBuffer.cs
- //
- // Author:
- // Atsushi Enomoto <[email protected]>
- //
- // Copyright (C) 2005 Novell, Inc. http://www.novell.com
- //
- #if NET_2_0
- using System;
- using System.IO;
- using System.Text;
- using NUnit.Framework;
- using Buffer = System.Text.EncoderReplacementFallbackBuffer;
- namespace MonoTests.System.Text
- {
- [TestFixture]
- public class EncoderReplacementFallbackBufferTest
- {
- private Buffer NewInstance ()
- {
- return new Buffer (new EncoderReplacementFallback ());
- }
- [Test]
- public void FallbackEmptyDefault ()
- {
- Buffer b = NewInstance ();
- Assert.IsTrue (b.Fallback ('X', 0), "#0");
- Assert.IsFalse (b.MovePrevious (), "#1");
- Assert.AreEqual (1, b.Remaining, "#2");
- Assert.AreEqual ('?', b.GetNextChar (), "#3");
- Assert.AreEqual (0, b.Remaining, "#4");
- // the string is already consumed.
- Assert.AreEqual (char.MinValue, b.GetNextChar (), "#5");
- }
- [Test]
- public void FallbackEmptyForEncodingUTF8 ()
- {
- Buffer b = Encoding.UTF8.EncoderFallback.CreateFallbackBuffer () as Buffer;
- Assert.IsTrue (b.Fallback ('X', 0), "#1");
- Assert.IsFalse (b.MovePrevious (), "#2");
- Assert.AreEqual (1, b.Remaining, "#3");
- // the string does not exist.
- Assert.AreEqual ('\uFFFD', b.GetNextChar (), "#4");
- }
- [Test]
- public void FallbackSequential ()
- {
- Buffer b = NewInstance ();
- b.Fallback ('X', 0);
- b.GetNextChar ();
- b.Fallback ('X', 0);
- }
- [Test]
- [ExpectedException (typeof (ArgumentException))]
- public void FallbackRecursiveError ()
- {
- Buffer b = NewInstance ();
- b.Fallback ('X', 0);
- b.Fallback ('X', 0);
- }
- [Test]
- [Category ("NotWorking")]
- public void Iterate ()
- {
- Assert.AreEqual ('\0', Encoding.UTF8.EncoderFallback
- .CreateFallbackBuffer ().GetNextChar (), "#1");
- Buffer b = NewInstance ();
- // Assert.AreEqual (1, b.Remaining, "#2");
- // Assert.AreEqual ('?', b.GetNextChar (), "#3");
- Assert.AreEqual (0, b.Remaining, "#4");
- Assert.AreEqual ('\0', b.GetNextChar (), "#5");
- // Assert.IsTrue (b.MovePrevious (), "#6");
- // Assert.AreEqual (1, b.Remaining, "#7");
- Assert.IsFalse (b.MovePrevious (), "#8");
- // Assert.AreEqual ('?', b.GetNextChar (), "#9");
- }
- }
- }
- #endif
|