a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
282 lines
7.7 KiB
C#
282 lines
7.7 KiB
C#
//
|
|
// System.ComponentModel.DisplayNameAttribute test cases
|
|
//
|
|
// Authors:
|
|
// Marek Habersack (grendello@gmail.com)
|
|
// Gert Driesen (drieseng@users.sourceforge.net
|
|
//
|
|
// (c) 2006 Marek Habersack
|
|
//
|
|
|
|
#if NET_2_0
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.Reflection;
|
|
|
|
using NUnit.Framework;
|
|
|
|
namespace MonoTests.System.ComponentModel
|
|
{
|
|
[DisplayName ()]
|
|
class TestClass1
|
|
{
|
|
[DisplayName ()]
|
|
public string Property1
|
|
{
|
|
get { return String.Empty; }
|
|
}
|
|
|
|
[DisplayName ()]
|
|
public string Method1 ()
|
|
{
|
|
return String.Empty;
|
|
}
|
|
}
|
|
|
|
[DisplayName ("TestClassTwo")]
|
|
class TestClass2
|
|
{
|
|
[DisplayName ("PropertyTwo")]
|
|
public string Property2
|
|
{
|
|
get { return String.Empty; }
|
|
}
|
|
|
|
[DisplayName ("MethodTwo")]
|
|
public string Method2 ()
|
|
{
|
|
return String.Empty;
|
|
}
|
|
}
|
|
|
|
[DisplayName (null)]
|
|
class TestClass3
|
|
{
|
|
[DisplayName (null)]
|
|
public string Property3
|
|
{
|
|
get { return String.Empty; }
|
|
}
|
|
|
|
[DisplayName (null)]
|
|
public string Method3 ()
|
|
{
|
|
return String.Empty;
|
|
}
|
|
}
|
|
|
|
[TestFixture]
|
|
public class DisplayNameAttributeTests
|
|
{
|
|
private TestClass1 tc1;
|
|
private TestClass2 tc2;
|
|
private TestClass3 tc3;
|
|
|
|
DisplayNameAttribute GetDisplayNameAttribute (object[] attrs)
|
|
{
|
|
DisplayNameAttribute dn = null;
|
|
foreach (object attr in attrs) {
|
|
dn = attr as DisplayNameAttribute;
|
|
if (dn != null)
|
|
break;
|
|
}
|
|
return dn;
|
|
}
|
|
|
|
DisplayNameAttribute GetAttribute (Type type)
|
|
{
|
|
return GetDisplayNameAttribute (type.GetCustomAttributes (false));
|
|
}
|
|
|
|
DisplayNameAttribute GetAttribute (Type type, string memberName, MemberTypes expectedType)
|
|
{
|
|
MemberInfo[] mi = type.GetMember (memberName, expectedType, BindingFlags.Instance | BindingFlags.Public);
|
|
return GetDisplayNameAttribute (mi[0].GetCustomAttributes (false));
|
|
}
|
|
|
|
[SetUp]
|
|
public void FixtureSetUp ()
|
|
{
|
|
tc1 = new TestClass1 ();
|
|
tc2 = new TestClass2 ();
|
|
tc3 = new TestClass3 ();
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor0 ()
|
|
{
|
|
DisplayNameAttribute dn = new DisplayNameAttribute ();
|
|
Assert.IsNotNull (dn.DisplayName, "#1");
|
|
Assert.AreEqual (string.Empty, dn.DisplayName, "#2");
|
|
Assert.IsTrue (dn.IsDefaultAttribute (), "#3");
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor1 ()
|
|
{
|
|
DisplayNameAttribute dn = new DisplayNameAttribute (string.Empty);
|
|
Assert.IsNotNull (dn.DisplayName, "#A1");
|
|
Assert.AreEqual (string.Empty, dn.DisplayName, "#A2");
|
|
Assert.IsTrue (dn.IsDefaultAttribute (), "#A3");
|
|
|
|
dn = new DisplayNameAttribute (null);
|
|
Assert.IsNull (dn.DisplayName, "#B1");
|
|
Assert.IsFalse (dn.IsDefaultAttribute (), "#B2");
|
|
|
|
dn = new DisplayNameAttribute ("category");
|
|
Assert.IsNotNull (dn.DisplayName, "#C1");
|
|
Assert.AreEqual ("category", dn.DisplayName, "#C2");
|
|
Assert.IsFalse (dn.IsDefaultAttribute (), "#C3");
|
|
}
|
|
|
|
[Test]
|
|
public void Default ()
|
|
{
|
|
DisplayNameAttribute dn = DisplayNameAttribute.Default;
|
|
Assert.IsNotNull (dn.DisplayName, "#1");
|
|
Assert.AreEqual (string.Empty, dn.DisplayName, "#2");
|
|
Assert.IsTrue (dn.IsDefaultAttribute (), "#3");
|
|
}
|
|
|
|
[Test]
|
|
public void Equals ()
|
|
{
|
|
DisplayNameAttribute dn = new DisplayNameAttribute ();
|
|
Assert.IsTrue (dn.Equals (DisplayNameAttribute.Default), "#A1");
|
|
Assert.IsTrue (dn.Equals (new DisplayNameAttribute (string.Empty)), "#A2");
|
|
Assert.IsFalse (dn.Equals (new DisplayNameAttribute ("category")), "#A3");
|
|
Assert.IsFalse (dn.Equals (new DisplayNameAttribute (null)), "#A4");
|
|
Assert.IsFalse (dn.Equals (null), "#A5");
|
|
Assert.IsTrue (dn.Equals (dn), "#A6");
|
|
Assert.IsFalse (dn.Equals (55), "#A7");
|
|
|
|
dn = new DisplayNameAttribute ("category");
|
|
Assert.IsFalse (dn.Equals (DisplayNameAttribute.Default), "#B1");
|
|
Assert.IsFalse (dn.Equals (new DisplayNameAttribute (string.Empty)), "#B2");
|
|
Assert.IsTrue (dn.Equals (new DisplayNameAttribute ("category")), "#B3");
|
|
Assert.IsFalse (dn.Equals (new DisplayNameAttribute (null)), "#B4");
|
|
Assert.IsFalse (dn.Equals (null), "#B5");
|
|
Assert.IsTrue (dn.Equals (dn), "#B6");
|
|
Assert.IsFalse (dn.Equals (55), "#B7");
|
|
}
|
|
|
|
[Test]
|
|
public void GetHashCodeTest ()
|
|
{
|
|
DisplayNameAttribute dn = new DisplayNameAttribute ();
|
|
Assert.AreEqual (string.Empty.GetHashCode (), dn.GetHashCode (), "#A1");
|
|
dn = new DisplayNameAttribute ("A");
|
|
Assert.AreEqual ("A".GetHashCode (), dn.GetHashCode (), "#A2");
|
|
|
|
// https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=288534
|
|
dn = new DisplayNameAttribute (null);
|
|
try {
|
|
dn.GetHashCode ();
|
|
Assert.Fail ("#B1");
|
|
} catch (NullReferenceException) {
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void TestEmptyName ()
|
|
{
|
|
Type tc1t = tc1.GetType ();
|
|
DisplayNameAttribute dn = GetAttribute (tc1t);
|
|
Assert.IsNotNull (dn, "#1_1");
|
|
Assert.IsFalse (dn.DisplayName == null, "#1_2");
|
|
Assert.AreEqual (dn.DisplayName, "", "#1_3");
|
|
|
|
dn = GetAttribute (tc1t, "Property1", MemberTypes.Property);
|
|
Assert.IsNotNull (dn, "#2_1");
|
|
Assert.IsFalse (dn.DisplayName == null, "#2_2");
|
|
Assert.AreEqual (dn.DisplayName, "", "#2_3");
|
|
|
|
dn = GetAttribute (tc1t, "Method1", MemberTypes.Method);
|
|
Assert.IsNotNull (dn, "#3_1");
|
|
Assert.IsFalse (dn.DisplayName == null, "#3_2");
|
|
Assert.AreEqual (dn.DisplayName, "", "#3_3");
|
|
}
|
|
|
|
[Test]
|
|
public void TestNonEmptyName ()
|
|
{
|
|
Type tc2t = tc2.GetType ();
|
|
DisplayNameAttribute dn = GetAttribute (tc2t);
|
|
Assert.IsNotNull (dn, "#1_1");
|
|
Assert.IsFalse (dn.DisplayName == null, "#1_2");
|
|
Assert.AreEqual (dn.DisplayName, "TestClassTwo", "#1_3");
|
|
|
|
dn = GetAttribute (tc2t, "Property2", MemberTypes.Property);
|
|
Assert.IsNotNull (dn, "#2_1");
|
|
Assert.IsFalse (dn.DisplayName == null, "#2_2");
|
|
Assert.AreEqual (dn.DisplayName, "PropertyTwo", "#2_3");
|
|
|
|
dn = GetAttribute (tc2t, "Method2", MemberTypes.Method);
|
|
Assert.IsNotNull (dn, "#3_1");
|
|
Assert.IsFalse (dn.DisplayName == null, "#3_2");
|
|
Assert.AreEqual (dn.DisplayName, "MethodTwo", "#3_3");
|
|
}
|
|
|
|
[Test]
|
|
public void TestNullName ()
|
|
{
|
|
Type tc3t = tc3.GetType ();
|
|
DisplayNameAttribute dn = GetAttribute (tc3t);
|
|
Assert.IsNotNull (dn, "#1_1");
|
|
Assert.IsNull (dn.DisplayName, "#1_2");
|
|
|
|
dn = GetAttribute (tc3t, "Property3", MemberTypes.Property);
|
|
Assert.IsNotNull (dn, "#2_1");
|
|
Assert.IsNull (dn.DisplayName, "#2_2");
|
|
|
|
dn = GetAttribute (tc3t, "Method3", MemberTypes.Method);
|
|
Assert.IsNotNull (dn, "#3_1");
|
|
Assert.IsNull (dn.DisplayName, "#3_2");
|
|
}
|
|
|
|
[Test]
|
|
public void TestDefaultAttribute ()
|
|
{
|
|
Type tc1t = tc1.GetType ();
|
|
DisplayNameAttribute dn = GetAttribute (tc1t);
|
|
Assert.IsNotNull (dn, "#1_1");
|
|
Assert.IsTrue (dn.IsDefaultAttribute (), "#1_2");
|
|
|
|
dn = GetAttribute (tc1t, "Property1", MemberTypes.Property);
|
|
Assert.IsNotNull (dn, "#1_3");
|
|
Assert.IsTrue (dn.IsDefaultAttribute (), "#1_4");
|
|
|
|
dn = GetAttribute (tc1t, "Method1", MemberTypes.Method);
|
|
Assert.IsNotNull (dn, "#1_5");
|
|
Assert.IsTrue (dn.IsDefaultAttribute (), "#1_6");
|
|
|
|
Type tc2t = tc2.GetType ();
|
|
dn = GetAttribute (tc2t);
|
|
Assert.IsNotNull (dn, "#2_1");
|
|
Assert.IsFalse (dn.IsDefaultAttribute (), "#2_2");
|
|
|
|
dn = GetAttribute (tc2t, "Property2", MemberTypes.Property);
|
|
Assert.IsNotNull (dn, "#2_3");
|
|
Assert.IsFalse (dn.IsDefaultAttribute (), "#2_4");
|
|
|
|
dn = GetAttribute (tc2t, "Method2", MemberTypes.Method);
|
|
Assert.IsNotNull (dn, "#2_5");
|
|
Assert.IsFalse (dn.IsDefaultAttribute (), "#2_6");
|
|
|
|
Type tc3t = tc3.GetType ();
|
|
dn = GetAttribute (tc3t);
|
|
Assert.IsNotNull (dn, "#3_1");
|
|
Assert.IsFalse (dn.IsDefaultAttribute (), "#3_2");
|
|
|
|
dn = GetAttribute (tc3t, "Property3", MemberTypes.Property);
|
|
Assert.IsNotNull (dn, "#3_3");
|
|
Assert.IsFalse (dn.IsDefaultAttribute (), "#3_4");
|
|
|
|
dn = GetAttribute (tc3t, "Method3", MemberTypes.Method);
|
|
Assert.IsNotNull (dn, "#3_5");
|
|
Assert.IsFalse (dn.IsDefaultAttribute (), "#3_6");
|
|
}
|
|
}
|
|
}
|
|
#endif
|