update .sln too.
[mono.git] / mcs / class / System.ComponentModel.DataAnnotations / Test / System.ComponentModel.DataAnnotations / FilterUIHintAttributeTest.cs
1 // (c) Copyright Microsoft Corporation.
2 // This source is subject to the Microsoft Public License (Ms-PL).
3 // Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
4 // All other rights reserved.
5
6 // https://silverlight.svn.codeplex.com/svn/Release/Silverlight4/Source/RiaClient.Tests/System.ComponentModel.DataAnnotations/FilterUIHintAttributeTest.cs
7
8 #if NET_4_0
9
10 using System;
11 using System.ComponentModel;
12 using System.ComponentModel.DataAnnotations;
13
14 using NUnit.Framework;
15
16 namespace MonoTests.System.ComponentModel.DataAnnotations
17 {
18     [TestFixture]
19     public class FilterUIHintAttributeTest {
20         [Test]
21         [Description("Simple ctors set expected properties.")]
22         public void FilterUIHintAttribute_Simple_Ctors_Set_Properties() {
23             var attr = new FilterUIHintAttribute(null, null);
24             Assert.IsNull(attr.FilterUIHint);
25             Assert.IsNull(attr.PresentationLayer);
26             Assert.AreEqual(0, attr.ControlParameters.Count);
27
28             attr = new FilterUIHintAttribute(string.Empty, string.Empty);
29             Assert.AreEqual(string.Empty, attr.FilterUIHint);
30             Assert.AreEqual(string.Empty, attr.PresentationLayer);
31             Assert.AreEqual(0, attr.ControlParameters.Count);
32
33             attr = new FilterUIHintAttribute("theHint");
34             Assert.AreEqual("theHint", attr.FilterUIHint);
35             Assert.IsNull(attr.PresentationLayer);
36             Assert.AreEqual(0, attr.ControlParameters.Count);
37
38             attr = new FilterUIHintAttribute("theHint", "theLayer");
39             Assert.AreEqual("theHint", attr.FilterUIHint);
40             Assert.AreEqual("theLayer", attr.PresentationLayer);
41             Assert.AreEqual(0, attr.ControlParameters.Count);
42         }
43
44         [Test]
45         public void ConstructorControlParameters() {
46             Assert.AreEqual(2, new FilterUIHintAttribute("", "", "a", 1, "b", 2).ControlParameters.Keys.Count);
47         }
48
49         [Test]
50         public void ConstructorControlParameters_NoParams() {
51             Assert.AreEqual(0, new FilterUIHintAttribute("", "", new object[0]).ControlParameters.Keys.Count);
52             Assert.AreEqual(0, new FilterUIHintAttribute("", "", (object[])null).ControlParameters.Keys.Count);
53             Assert.AreEqual(0, new FilterUIHintAttribute("", "").ControlParameters.Keys.Count);
54             Assert.AreEqual(0, new FilterUIHintAttribute("").ControlParameters.Keys.Count);
55         }
56
57         [Test]
58         [ExpectedException (typeof (InvalidOperationException))]
59         public void ConstructorControlParameters_UnevenNumber() {
60             var attr = new FilterUIHintAttribute("", "", "");
61                 var v = attr.ControlParameters;
62         }
63
64         [Test]
65         [ExpectedException (typeof (InvalidOperationException))]
66         public void ConstructorControlParameters_NonStringKey() {
67             var attr = new FilterUIHintAttribute("", "", 1, "value");
68                 var v = attr.ControlParameters;
69         }
70
71         [Test]
72         [ExpectedException (typeof (InvalidOperationException))]
73         public void ConstructorControlParameters_NullKey() {
74             var attr = new FilterUIHintAttribute("", "", null, "value");
75                 var v = attr.ControlParameters;
76         }
77
78         [Test]
79         [ExpectedException (typeof (InvalidOperationException))]
80         public void ConstructorControlParameters_DuplicateKey() {
81             var attr = new FilterUIHintAttribute("", "", "key", "value1", "key", "value2");
82                 var v = attr.ControlParameters;
83         }
84
85 #if !SILVERLIGHT
86         [Test]
87         public void TypeId_ReturnsDifferentValuesForDifferentInstances() {
88             Assert.AreNotEqual(new FilterUIHintAttribute("foo").TypeId, new FilterUIHintAttribute("bar").TypeId);
89         }
90 #endif
91     }
92 }
93
94 #endif