1
// ****************************************************************
2
// Copyright 2007, Charlie Poole
3
// This is free software licensed under the NUnit license. You may
4
// obtain a copy of the license at http://nunit.org.
5
// ****************************************************************
8
using System.Threading;
9
using System.Globalization;
11
namespace NUnit.Framework.Tests
14
public class TextMessageWriterTests : AssertionHelper
16
private TextMessageWriter writer;
21
writer = new TextMessageWriter();
25
public void ConnectorIsWrittenWithSurroundingSpaces()
27
writer.WriteConnector("and");
28
Expect(writer.ToString(), EqualTo(" and "));
32
public void PredicateIsWrittenWithTrailingSpace()
34
writer.WritePredicate("contains");
35
Expect(writer.ToString(), EqualTo("contains "));
39
public void IntegerIsWrittenAsIs()
41
writer.WriteValue(42);
42
Expect(writer.ToString(), EqualTo("42"));
46
public void StringIsWrittenWithQuotes()
48
writer.WriteValue("Hello");
49
Expect(writer.ToString(), EqualTo("\"Hello\""));
52
// This test currently fails because control character replacement is
53
// done at a higher level...
54
// TODO: See if we should do it at a lower level
56
// public void ControlCharactersInStringsAreEscaped()
58
// WriteValue("Best Wishes,\r\n\tCharlie\r\n");
59
// Assert.That(writer.ToString(), Is.EqualTo("\"Best Wishes,\\r\\n\\tCharlie\\r\\n\""));
63
public void FloatIsWrittenWithTrailingF()
65
writer.WriteValue(0.5f);
66
Expect(writer.ToString(), EqualTo("0.5f"));
70
public void FloatIsWrittenToNineDigits()
72
writer.WriteValue(0.33333333333333f);
73
int digits = writer.ToString().Length - 3; // 0.dddddddddf
74
Expect(digits, EqualTo(9));
75
Expect(writer.ToString().Length, EqualTo(12));
79
public void DoubleIsWrittenWithTrailingD()
81
writer.WriteValue(0.5d);
82
Expect(writer.ToString(), EqualTo("0.5d"));
86
public void DoubleIsWrittenToSeventeenDigits()
88
writer.WriteValue(0.33333333333333333333333333333333333333333333d);
89
Expect(writer.ToString().Length, EqualTo(20)); // add 3 for leading 0, decimal and trailing d
93
public void DecimalIsWrittenWithTrailingM()
95
writer.WriteValue(0.5m);
96
Expect(writer.ToString(), EqualTo("0.5m"));
100
public void DecimalIsWrittenToTwentyNineDigits()
102
writer.WriteValue(12345678901234567890123456789m);
103
Expect(writer.ToString(), EqualTo("12345678901234567890123456789m"));
107
public void DateTimeTest()
109
writer.WriteValue(new DateTime(2007, 7, 4, 9, 15, 30, 123));
110
Expect(writer.ToString(), EqualTo("2007-07-04 09:15:30.123"));
114
public void DisplayStringDifferences()
116
string s72 = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
117
string exp = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXY...";
119
writer.DisplayStringDifferences(s72, "abcde", 5, false, true);
120
// string message = writer.ToString();
121
Expect(writer.ToString(), EqualTo(
122
TextMessageWriter.Pfx_Expected + Q(exp) + Environment.NewLine +
123
TextMessageWriter.Pfx_Actual + Q("abcde") + Environment.NewLine +
124
" ----------------^" + Environment.NewLine));
128
public void DisplayStringDifferences_NoClipping()
130
string s72 = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
132
writer.DisplayStringDifferences(s72, "abcde", 5, false, false);
133
// string message = writer.ToString();
134
Expect(writer.ToString(), EqualTo(
135
TextMessageWriter.Pfx_Expected + Q(s72) + Environment.NewLine +
136
TextMessageWriter.Pfx_Actual + Q("abcde") + Environment.NewLine +
137
" ----------------^" + Environment.NewLine));
140
private string Q(string s)
142
return "\"" + s + "\"";
1
// ****************************************************************
2
// Copyright 2007, Charlie Poole
3
// This is free software licensed under the NUnit license. You may
4
// obtain a copy of the license at http://nunit.org.
5
// ****************************************************************
8
using System.Threading;
9
using System.Globalization;
11
namespace NUnit.Framework.Tests
14
public class TextMessageWriterTests : AssertionHelper
16
private TextMessageWriter writer;
21
writer = new TextMessageWriter();
25
public void ConnectorIsWrittenWithSurroundingSpaces()
27
writer.WriteConnector("and");
28
Expect(writer.ToString(), EqualTo(" and "));
32
public void PredicateIsWrittenWithTrailingSpace()
34
writer.WritePredicate("contains");
35
Expect(writer.ToString(), EqualTo("contains "));
39
public void IntegerIsWrittenAsIs()
41
writer.WriteValue(42);
42
Expect(writer.ToString(), EqualTo("42"));
46
public void StringIsWrittenWithQuotes()
48
writer.WriteValue("Hello");
49
Expect(writer.ToString(), EqualTo("\"Hello\""));
52
// This test currently fails because control character replacement is
53
// done at a higher level...
54
// TODO: See if we should do it at a lower level
56
// public void ControlCharactersInStringsAreEscaped()
58
// WriteValue("Best Wishes,\r\n\tCharlie\r\n");
59
// Assert.That(writer.ToString(), Is.EqualTo("\"Best Wishes,\\r\\n\\tCharlie\\r\\n\""));
63
public void FloatIsWrittenWithTrailingF()
65
writer.WriteValue(0.5f);
66
Expect(writer.ToString(), EqualTo("0.5f"));
70
public void FloatIsWrittenToNineDigits()
72
writer.WriteValue(0.33333333333333f);
73
int digits = writer.ToString().Length - 3; // 0.dddddddddf
74
Expect(digits, EqualTo(9));
75
Expect(writer.ToString().Length, EqualTo(12));
79
public void DoubleIsWrittenWithTrailingD()
81
writer.WriteValue(0.5d);
82
Expect(writer.ToString(), EqualTo("0.5d"));
86
public void DoubleIsWrittenToSeventeenDigits()
88
writer.WriteValue(0.33333333333333333333333333333333333333333333d);
89
Expect(writer.ToString().Length, EqualTo(20)); // add 3 for leading 0, decimal and trailing d
93
public void DecimalIsWrittenWithTrailingM()
95
writer.WriteValue(0.5m);
96
Expect(writer.ToString(), EqualTo("0.5m"));
100
public void DecimalIsWrittenToTwentyNineDigits()
102
writer.WriteValue(12345678901234567890123456789m);
103
Expect(writer.ToString(), EqualTo("12345678901234567890123456789m"));
107
public void DateTimeTest()
109
writer.WriteValue(new DateTime(2007, 7, 4, 9, 15, 30, 123));
110
Expect(writer.ToString(), EqualTo("2007-07-04 09:15:30.123"));
114
public void DisplayStringDifferences()
116
string s72 = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
117
string exp = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXY...";
119
writer.DisplayStringDifferences(s72, "abcde", 5, false, true);
120
// string message = writer.ToString();
121
Expect(writer.ToString(), EqualTo(
122
TextMessageWriter.Pfx_Expected + Q(exp) + Environment.NewLine +
123
TextMessageWriter.Pfx_Actual + Q("abcde") + Environment.NewLine +
124
" ----------------^" + Environment.NewLine));
128
public void DisplayStringDifferences_NoClipping()
130
string s72 = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
132
writer.DisplayStringDifferences(s72, "abcde", 5, false, false);
133
// string message = writer.ToString();
134
Expect(writer.ToString(), EqualTo(
135
TextMessageWriter.Pfx_Expected + Q(s72) + Environment.NewLine +
136
TextMessageWriter.Pfx_Actual + Q("abcde") + Environment.NewLine +
137
" ----------------^" + Environment.NewLine));
140
private string Q(string s)
142
return "\"" + s + "\"";