1
// ***********************************************************************
2
// Copyright (c) 2009 Charlie Poole
4
// Permission is hereby granted, free of charge, to any person obtaining
5
// a copy of this software and associated documentation files (the
6
// "Software"), to deal in the Software without restriction, including
7
// without limitation the rights to use, copy, modify, merge, publish,
8
// distribute, sublicense, and/or sell copies of the Software, and to
9
// permit persons to whom the Software is furnished to do so, subject to
10
// the following conditions:
12
// The above copyright notice and this permission notice shall be
13
// included in all copies or substantial portions of the Software.
15
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
// ***********************************************************************
24
// TODO: Remove NUNITLITE conditional code
26
using System.Collections;
27
using NUnit.Framework.Internal;
28
using NUnit.TestUtilities;
30
namespace NUnit.Framework.Constraints.Tests
32
public class PropertyExistsTest
36
: ConstraintTestBaseWithExceptionTests
42
theConstraint = new PropertyExistsConstraint("Length");
43
expectedDescription = "property Length";
44
stringRepresentation = "<propertyexists Length>";
47
internal static object[] SuccessData = new object[] { new int[0], "hello", typeof(Array) };
49
internal static object[] FailureData = new object[] {
50
new TestCaseData( 42, "<System.Int32>" ),
51
new TestCaseData( new SimpleObjectCollection(), "<NUnit.TestUtilities.SimpleObjectCollection>" ),
52
new TestCaseData( typeof(Int32), "<System.Int32>" ) };
54
internal static object[] InvalidData = new TestCaseData[]
56
new TestCaseData(null).Throws(typeof(ArgumentNullException))
61
public class PropertyTest
65
: ConstraintTestBaseWithExceptionTests
71
theConstraint = new PropertyConstraint("Length", new EqualConstraint(5));
72
expectedDescription = "property Length equal to 5";
73
stringRepresentation = "<property Length <equal 5>>";
76
internal static object[] SuccessData = new object[] { new int[5], "hello" };
78
internal static object[] FailureData = new object[] {
79
new TestCaseData( new int[3], "3" ),
80
new TestCaseData( "goodbye", "7" ) };
82
internal static object[] InvalidData = new object[]
84
new TestCaseData(null).Throws(typeof(ArgumentNullException)),
85
new TestCaseData(42).Throws(typeof(ArgumentException)),
86
new TestCaseData(new System.Collections.ArrayList()).Throws(typeof(ArgumentException))
91
public void PropertyEqualToValueWithTolerance()
93
Constraint c = new EqualConstraint(105m).Within(0.1m);
94
TextMessageWriter w = new TextMessageWriter();
95
c.WriteDescriptionTo(w);
96
Assert.That(w.ToString(), Is.EqualTo("105m +/- 0.1m"));
98
c = new PropertyConstraint("D", new EqualConstraint(105m).Within(0.1m));
99
w = new TextMessageWriter();
100
c.WriteDescriptionTo(w);
101
Assert.That(w.ToString(), Is.EqualTo("property D equal to 105m +/- 0.1m"));