2 // System.ComponentModel.PropertyDescriptor test cases
5 // Chris Toshok (toshok@ximian.com)
7 // (c) 2006 Novell, Inc. (http://www.novell.com/)
11 using System.Collections;
12 using System.ComponentModel;
13 using System.Globalization;
15 using NUnit.Framework;
17 namespace MonoTests.System.ComponentModel
20 public class PropertyDescriptorTests
22 class ReadOnlyProperty_test
29 class ReadOnlyAttribute_test
38 class ConflictingReadOnly_test
46 class ShouldSerialize_public_test
52 public bool ShouldSerializeProp()
58 class ShouldSerialize_protected_test
64 protected bool ShouldSerializeProp()
70 class ShouldSerialize_private_test
76 private bool ShouldSerializeProp()
82 class ShouldSerializeFalseEffectOnCanReset_test
89 public bool ShouldSerializeProp()
94 public void ResetProp()
99 class NoSerializeOrResetProp_test
106 class CanReset_public_test
111 set { prop = value; }
114 public void ResetProp()
120 class CanReset_protected_test
125 set { prop = value; }
128 protected void ResetProp()
134 class CanReset_private_test
139 set { prop = value; }
142 private void ResetProp()
148 class CanResetNoSetter_test
155 private void ResetProp()
162 public void ShouldSerializeTest_public ()
164 PropertyDescriptor p = TypeDescriptor.GetProperties (typeof (ShouldSerialize_public_test))["Prop"];
165 ShouldSerialize_public_test test = new ShouldSerialize_public_test ();
167 Assert.IsFalse (p.ShouldSerializeValue (test), "1");
171 public void ShouldSerializeTest_protected ()
173 PropertyDescriptor p = TypeDescriptor.GetProperties (typeof (ShouldSerialize_protected_test))["Prop"];
174 ShouldSerialize_protected_test test = new ShouldSerialize_protected_test ();
176 Assert.IsFalse (p.ShouldSerializeValue (test), "1");
180 public void ShouldSerializeTest_private ()
182 PropertyDescriptor p = TypeDescriptor.GetProperties (typeof (ShouldSerialize_protected_test))["Prop"];
183 ShouldSerialize_protected_test test = new ShouldSerialize_protected_test ();
185 Assert.IsFalse (p.ShouldSerializeValue (test), "1");
189 public void CanResetTest_public ()
191 PropertyDescriptor p = TypeDescriptor.GetProperties (typeof (CanReset_public_test))["Prop"];
192 CanReset_public_test test = new CanReset_public_test ();
194 Assert.IsTrue (p.CanResetValue (test), "1");
195 Assert.AreEqual (5, test.Prop, "2");
197 Assert.AreEqual (10, test.Prop, "3");
201 public void CanResetTest_protected ()
203 PropertyDescriptor p = TypeDescriptor.GetProperties (typeof (CanReset_protected_test))["Prop"];
204 CanReset_protected_test test = new CanReset_protected_test ();
206 Assert.IsTrue (p.CanResetValue (test), "1");
207 Assert.AreEqual (5, test.Prop, "2");
209 Assert.AreEqual (10, test.Prop, "3");
213 public void CanResetTest_private ()
215 PropertyDescriptor p = TypeDescriptor.GetProperties (typeof (CanReset_private_test))["Prop"];
216 CanReset_private_test test = new CanReset_private_test ();
218 Assert.IsTrue (p.CanResetValue (test), "1");
219 Assert.AreEqual (5, test.Prop, "2");
221 Assert.AreEqual (10, test.Prop, "3");
225 public void CanResetTestNoSetterTest ()
227 PropertyDescriptor p = TypeDescriptor.GetProperties (typeof (CanResetNoSetter_test))["Prop"];
228 CanResetNoSetter_test test = new CanResetNoSetter_test ();
231 Assert.IsFalse (p.CanResetValue (test), "1");
233 Assert.IsTrue (p.CanResetValue (test), "1");
235 Assert.AreEqual (5, test.Prop, "2");
237 Assert.AreEqual (10, test.Prop, "3");
241 public void NoSerializeOrResetPropTest ()
243 PropertyDescriptor p = TypeDescriptor.GetProperties (typeof (NoSerializeOrResetProp_test))["Prop"];
244 NoSerializeOrResetProp_test test = new NoSerializeOrResetProp_test ();
246 Assert.IsFalse (p.CanResetValue (test), "1");
247 Assert.IsFalse (p.ShouldSerializeValue (test), "2");
251 public void ShouldSerializeFalseEffectOnCanResetTest ()
253 PropertyDescriptor p = TypeDescriptor.GetProperties (typeof (ShouldSerializeFalseEffectOnCanReset_test))["Prop"];
254 ShouldSerializeFalseEffectOnCanReset_test test = new ShouldSerializeFalseEffectOnCanReset_test ();
256 Assert.IsFalse (p.ShouldSerializeValue (test), "1");
257 Assert.IsFalse (p.CanResetValue (test), "2");
261 public void ReadOnlyPropertyTest ()
263 PropertyDescriptorCollection col = TypeDescriptor.GetProperties (typeof (ReadOnlyProperty_test));
264 Assert.IsTrue (col["Prop"].IsReadOnly, "1");
268 public void ReadOnlyAttributeTest ()
270 PropertyDescriptorCollection col = TypeDescriptor.GetProperties (typeof (ReadOnlyAttribute_test));
271 Assert.IsTrue (col["Prop"].IsReadOnly, "1");
275 public void ReadOnlyConflictingTest ()
277 PropertyDescriptorCollection col = TypeDescriptor.GetProperties (typeof (ConflictingReadOnly_test));
278 Assert.IsTrue (col["Prop"].IsReadOnly, "1");