a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
177 lines
6.0 KiB
C#
177 lines
6.0 KiB
C#
// Permission is hereby granted, free of charge, to any person obtaining
|
|
// a copy of this software and associated documentation files (the
|
|
// "Software"), to deal in the Software without restriction, including
|
|
// without limitation the rights to use, copy, modify, merge, publish,
|
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
|
// permit persons to whom the Software is furnished to do so, subject to
|
|
// the following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be
|
|
// included in all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
//
|
|
// Copyright (c) 2007 Novell, Inc. (http://www.novell.com)
|
|
//
|
|
// Authors:
|
|
// Brian O'Keefe (zer0keefie@gmail.com)
|
|
//
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using NUnit.Framework;
|
|
using System.ComponentModel;
|
|
using System.Reflection;
|
|
|
|
namespace MonoTests.System.ComponentModel
|
|
{
|
|
[TestFixture]
|
|
public class SortDescriptionTest
|
|
{
|
|
public SortDescriptionTest()
|
|
{
|
|
}
|
|
|
|
[Test]
|
|
public void ConstructorTest()
|
|
{
|
|
string propertyName = "SampleProperty";
|
|
SortDescription sd = new SortDescription (propertyName, ListSortDirection.Ascending);
|
|
|
|
Assert.AreEqual (propertyName, sd.PropertyName, "CTOR_#1");
|
|
Assert.AreEqual (ListSortDirection.Ascending, sd.Direction, "CTOR_#2");
|
|
Assert.IsFalse (sd.IsSealed, "CTOR_#3");
|
|
|
|
sd = new SortDescription (propertyName, ListSortDirection.Descending);
|
|
|
|
Assert.AreEqual (ListSortDirection.Descending, sd.Direction, "CTOR_#3");
|
|
|
|
sd.Direction = ListSortDirection.Ascending;
|
|
Assert.AreEqual (ListSortDirection.Ascending, sd.Direction, "CTOR_#4");
|
|
|
|
sd.PropertyName = "NewProperty";
|
|
Assert.AreEqual("NewProperty", sd.PropertyName, "CTOR_#5");
|
|
}
|
|
|
|
[Test]
|
|
public void NullArgumentTest() {
|
|
SortDescription sd = new SortDescription(null, ListSortDirection.Ascending);
|
|
Assert.IsNull(sd.PropertyName, "NullArg_#1");
|
|
}
|
|
|
|
[Test]
|
|
public void EmptyArgumentTest() {
|
|
SortDescription sd = new SortDescription(string.Empty, ListSortDirection.Ascending);
|
|
Assert.AreEqual(string.Empty, sd.PropertyName, "EmptyArg_#1");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(InvalidEnumArgumentException))]
|
|
public void InvalidEnumArgumentTest() {
|
|
new SortDescription("Test", (ListSortDirection)3);
|
|
}
|
|
|
|
[Test]
|
|
public void NullArgumentAssignmentTest() {
|
|
SortDescription sd = new SortDescription("Test", ListSortDirection.Ascending);
|
|
sd.PropertyName = null;
|
|
|
|
Assert.IsNull(sd.PropertyName, "AssignNull_#1");
|
|
}
|
|
|
|
[Test]
|
|
public void EmptyArgumentAssignmentTest() {
|
|
SortDescription sd = new SortDescription("Test", ListSortDirection.Ascending);
|
|
sd.PropertyName = string.Empty;
|
|
|
|
Assert.AreEqual(string.Empty, sd.PropertyName, "AssignEmpty_#1");
|
|
}
|
|
|
|
[Test]
|
|
public void OperatorTest()
|
|
{
|
|
SortDescription left = new SortDescription ("A", ListSortDirection.Ascending);
|
|
SortDescription same = new SortDescription ("A", ListSortDirection.Ascending);
|
|
SortDescription diffProp = new SortDescription ("B", ListSortDirection.Ascending);
|
|
SortDescription diffDir = new SortDescription ("A", ListSortDirection.Descending);
|
|
|
|
Assert.IsTrue (left == same, "OP_#1");
|
|
Assert.IsFalse (left == diffProp, "OP_#2");
|
|
Assert.IsFalse (left == diffDir, "OP_#3");
|
|
Assert.IsFalse (left == null, "OP_#4");
|
|
|
|
Assert.IsFalse (left != same, "OP_#5");
|
|
Assert.IsTrue (left != diffProp, "OP_#6");
|
|
Assert.IsTrue (left != diffDir, "OP_#7");
|
|
Assert.IsTrue (left != null, "OP_#8");
|
|
|
|
Assert.IsTrue (left.Equals (same), "OP_#9");
|
|
Assert.IsFalse (left.Equals (diffProp), "OP_#10");
|
|
Assert.IsFalse (left.Equals (diffDir), "OP_#11");
|
|
Assert.IsFalse (left.Equals (null), "OP_#12");
|
|
}
|
|
|
|
[Test]
|
|
public void ToStringAndHashCodeTest()
|
|
{
|
|
SortDescription sd = new SortDescription ("Sample", ListSortDirection.Ascending);
|
|
|
|
Assert.AreEqual ("System.ComponentModel.SortDescription", sd.ToString (), "TSHC_#1");
|
|
Assert.AreEqual ("Sample".GetHashCode () ^ ListSortDirection.Ascending.GetHashCode(),
|
|
sd.GetHashCode (), "TSHC_#2");
|
|
|
|
sd = new SortDescription ("Sample", ListSortDirection.Descending);
|
|
|
|
Assert.AreEqual ("Sample".GetHashCode () ^ ListSortDirection.Descending.GetHashCode (),
|
|
sd.GetHashCode (), "TSHC_#3");
|
|
|
|
sd = new SortDescription(null, ListSortDirection.Descending);
|
|
|
|
Assert.AreEqual (ListSortDirection.Descending.GetHashCode (), sd.GetHashCode( ), "TSHC_#4");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(InvalidOperationException))]
|
|
public void SetSealedPropertyNameTest() {
|
|
SortDescription sd = new SortDescription("Test", ListSortDirection.Ascending);
|
|
|
|
// Need to borrow the add method of SortDescriptionCollection to seal the
|
|
// SortDescription (Seal is internal)
|
|
SortDescriptionCollection sdc = new SortDescriptionCollection ();
|
|
sdc.Add (sd);
|
|
|
|
sd = sdc [0];
|
|
// SD is sealed now.
|
|
Assert.IsTrue (sd.IsSealed, "SealedProp_#1");
|
|
|
|
sd.PropertyName = "NewProperty";
|
|
Assert.AreEqual ("NewProperty", sd.PropertyName, "SealedProp_#1");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(InvalidOperationException))]
|
|
public void SetSealedDirectionTest() {
|
|
SortDescription sd = new SortDescription ("Test", ListSortDirection.Ascending);
|
|
|
|
// Need to borrow the add method of SortDescriptionCollection to seal the
|
|
// SortDescription (Seal is internal)
|
|
SortDescriptionCollection sdc = new SortDescriptionCollection ();
|
|
sdc.Add (sd);
|
|
|
|
sd = sdc [0];
|
|
// SD is sealed now.
|
|
Assert.IsTrue(sd.IsSealed, "SealedProp_#1");
|
|
|
|
sd.Direction = ListSortDirection.Descending;
|
|
Assert.AreEqual (ListSortDirection.Descending, sd.Direction, "SealedProp_#1");
|
|
}
|
|
}
|
|
}
|