| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- // ConsoleTest.cs - NUnit Test Cases for the System.Console class
- //
- // David Brandt ([email protected])
- //
- // (C) Ximian, Inc. http://www.ximian.com
- //
- using NUnit.Framework;
- using System;
- using System.IO;
- namespace MonoTests.System
- {
- public class ConsoleTest : TestCase
- {
- public ConsoleTest() {}
- TextWriter _err;
- TextReader _in;
- TextWriter _out;
- protected override void SetUp()
- {
- _err = Console.Error;
- _in = Console.In;
- _out = Console.Out;
- }
- protected override void TearDown()
- {
- Console.SetError(_err);
- Console.SetIn(_in);
- Console.SetOut(_out);
- }
- public void TestError() {
- AssertNotNull("No error", Console.Error);
- }
- public void TestIn() {
- AssertNotNull("No in", Console.In);
- }
- public void TestOut() {
- AssertNotNull("No out", Console.Out);
- }
- public void TestOpenStandardError() {
- {
- Stream err = Console.OpenStandardError();
- AssertNotNull("Can't open error", err);
- }
- {
- Stream err = Console.OpenStandardError(512);
- AssertNotNull("Can't open error", err);
- }
- // Spec says these are here, MS implementation says no.
- //{
- //bool errorThrown = false;
- //try {
- //Stream err = Console.OpenStandardError(-1);
- //} catch (ArgumentOutOfRangeException) {
- //errorThrown = true;
- //}
- //Assert("negative buffer error not thrown",
- //errorThrown);
- //}
- //{
- //bool errorThrown = false;
- //try {
- //Stream err = Console.OpenStandardError(0);
- //} catch (ArgumentOutOfRangeException) {
- //errorThrown = true;
- //}
- //Assert("zero buffer error not thrown", errorThrown);
- //}
- }
- public void TestOpenStandardInput() {
- {
- Stream in1 = Console.OpenStandardInput();
- AssertNotNull("Can't open input", in1);
- }
- {
- Stream in1 = Console.OpenStandardInput(512);
- AssertNotNull("Can't open input", in1);
- }
- // see commented-out tests in TestOpenStandardError
- }
-
- public void TestOpenStandardOutput() {
- {
- Stream out1 = Console.OpenStandardOutput();
- AssertNotNull("Can't open output", out1);
- }
- {
- Stream out1 = Console.OpenStandardOutput(512);
- AssertNotNull("Can't open output", out1);
- }
- // see commented-out tests in TestOpenStandardError
- }
-
- public void TestRead() {
- String testStr = "This is a readline test";
- Stream s = new MemoryStream();
- TextWriter w = new StreamWriter(s);
- ((StreamWriter)w).AutoFlush = true;
- TextReader r = new StreamReader(s);
- Console.SetIn(r);
- w.WriteLine(testStr);
- s.Position = 0;
- char val = (char) Console.Read();
- AssertEquals("Wrong read", 'T', val);
- }
- public void TestReadLine() {
- String testStr = "This is a readline test";
- Stream s = new MemoryStream();
- TextWriter w = new StreamWriter(s);
- ((StreamWriter)w).AutoFlush = true;
- TextReader r = new StreamReader(s);
- Console.SetIn(r);
- w.WriteLine(testStr);
- s.Position = 0;
- String line = Console.ReadLine();
- AssertEquals("Wrong line", testStr, line);
- }
- public void TestSetError() {
- {
- bool errorThrown = false;
- try {
- Console.SetError(null);
- } catch (ArgumentNullException) {
- errorThrown = true;
- }
- Assert("null error error not thrown", errorThrown);
- }
- {
- String testStr = "This is a stderr test";
- Stream s = new MemoryStream();
- TextWriter w = new StreamWriter(s);
- ((StreamWriter)w).AutoFlush = true;
- TextReader r = new StreamReader(s);
- Console.SetError(w);
- Console.Error.WriteLine(testStr);
- s.Position = 0;
- String line = r.ReadLine();
- AssertEquals("Wrong line", testStr, line);
- }
- }
- public void TestSetIn() {
- {
- bool errorThrown = false;
- try {
- Console.SetIn(null);
- } catch (ArgumentNullException) {
- errorThrown = true;
- }
- Assert("null in error not thrown", errorThrown);
- }
- {
- String testStr = "This is a stdin test";
- Stream s = new MemoryStream();
- TextWriter w = new StreamWriter(s);
- ((StreamWriter)w).AutoFlush = true;
- TextReader r = new StreamReader(s);
- Console.SetIn(r);
- w.WriteLine(testStr);
- s.Position = 0;
- String line = Console.In.ReadLine();
- AssertEquals("Wrong line", testStr, line);
- }
- }
- public void TestSetOut() {
- {
- bool errorThrown = false;
- try {
- Console.SetOut(null);
- } catch (ArgumentNullException) {
- errorThrown = true;
- }
- Assert("null out error not thrown", errorThrown);
- }
- {
- String testStr = "This is a stdout test";
- Stream s = new MemoryStream();
- TextWriter w = new StreamWriter(s);
- ((StreamWriter)w).AutoFlush = true;
- TextReader r = new StreamReader(s);
- Console.SetOut(w);
- Console.Out.WriteLine(testStr);
- s.Position = 0;
- String line = r.ReadLine();
- AssertEquals("Wrong line", testStr, line);
- }
- }
- public void TestWrite() {
- Stream s = new MemoryStream();
- TextWriter w = new StreamWriter(s);
- ((StreamWriter)w).AutoFlush = true;
- TextReader r = new StreamReader(s);
- Console.SetOut(w);
- long endPos = 0;
- String testStr = "This is a stdout write test";
- Console.Write(testStr);
- s.Position = endPos;
- String line = r.ReadToEnd();
- AssertEquals("Wrong line", testStr, line);
- endPos = s.Position;
- Boolean[] booleans = {true, false};
- foreach (bool b in booleans ) {
- Console.Write(b);
- s.Position = endPos;
- line = r.ReadToEnd();
- AssertEquals("Wrong boolean", b.ToString(), line);
- endPos = s.Position;
- }
- Char[] chars = {'a', ';', '?'};
- foreach (Char c in chars ) {
- Console.Write(c);
- s.Position = endPos;
- line = r.ReadToEnd();
- AssertEquals("Wrong char", c.ToString(), line);
- endPos = s.Position;
- }
- // test writing a null value
- string x = null;
- Console.Write (x);
- // TODO - Likewise for char[], decimal, double, int, long, object, single, uint32, uint64
- // TODO - write with format string
- }
- public void TestWriteLine() {
- Stream s = new MemoryStream();
- TextWriter w = new StreamWriter(s);
- ((StreamWriter)w).AutoFlush = true;
- TextReader r = new StreamReader(s);
- Console.SetOut(w);
- long endPos = 0;
- String testStr = "This is a stdout writeline test";
- Console.WriteLine(testStr);
- s.Position = endPos;
- String line = r.ReadLine();
- AssertEquals("Wrong line", testStr, line);
- endPos = s.Position;
- Boolean[] booleans = {true, false};
- foreach (bool b in booleans ) {
- Console.WriteLine(b);
- s.Position = endPos;
- line = r.ReadLine();
- AssertEquals("Wrong boolean", b.ToString(), line);
- endPos = s.Position;
- }
- Char[] chars = {'a', ';', '?'};
- foreach (Char c in chars ) {
- Console.WriteLine(c);
- s.Position = endPos;
- line = r.ReadLine();
- AssertEquals("Wrong char", c.ToString(), line);
- endPos = s.Position;
- }
- // test writing a null value
- string x = null;
- Console.WriteLine (x);
- // TODO - Likewise for char[], decimal, double, int, long, object, single, uint32, uint64
- // TODO - write with format string
- }
- }
- }
|