public void Constructor_Default() { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase(); Assert.AreEqual(0, coll.Count, "Count-0"); Assert.IsFalse(coll._IsReadOnly, "IsReadOnly"); Assert.IsFalse(coll.HasKeys(), "HasKeys-0"); coll.Add("a", "1"); CheckICollection(coll, 1); Assert.AreEqual(1, coll.Count, "Count-1"); Assert.AreEqual("1", coll.Get(0), "Get(0)"); Assert.AreEqual(1, coll.GetAllKeys().Length, "GetAllKeys"); Assert.IsTrue(coll.HasKeys(), "HasKeys-1"); coll.Add("b", "2"); Assert.AreEqual(2, coll.Count, "Count-2"); Assert.AreEqual("b", coll.GetKey(1), "GetKey(1)"); Assert.AreEqual(2, coll.GetAllValues().Length, "GetAllValues"); coll.Remove("a"); Assert.AreEqual(1, coll.Count, "Count-3"); coll.Set(0, "3"); Assert.AreEqual("3", coll.Get(0), "Get(0)b"); coll.Set("b", "4"); Assert.AreEqual("4", coll.Get(0), "Get(0)c"); coll.RemoveAt(0); Assert.AreEqual(0, coll.Count, "Count-4"); Assert.IsFalse(coll.HasKeys(), "HasKeys-2"); }
public void Constructor_Int_IEqualityComparer() { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase(5, new EqualityComparer()); coll.Add("a", "1"); CheckICollection(coll, 1); }
public void CopyTo_Array_Null() { UnitTestNameObjectCollectionBase c = new UnitTestNameObjectCollectionBase(); try { ((ICollection)c).CopyTo(null, 0); Assert.Fail("#A1"); } catch (ArgumentNullException ex) { Assert.AreEqual(typeof(ArgumentNullException), ex.GetType(), "#A2"); Assert.IsNull(ex.InnerException, "#A3"); Assert.IsNotNull(ex.Message, "#A4"); Assert.IsNotNull(ex.ParamName, "#A5"); Assert.AreEqual("array", ex.ParamName, "#A6"); } c.Add("1", "mono"); try { ((ICollection)c).CopyTo(null, 0); Assert.Fail("#B1"); } catch (ArgumentNullException ex) { Assert.AreEqual(typeof(ArgumentNullException), ex.GetType(), "#B2"); Assert.IsNull(ex.InnerException, "#B3"); Assert.IsNotNull(ex.Message, "#B4"); Assert.IsNotNull(ex.ParamName, "#B5"); Assert.AreEqual("array", ex.ParamName, "#B6"); } }
public void Constructor_Provider_Comparer() { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase(CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default); coll.Add(null, null); Assert.AreEqual(1, coll.Count, "Count-1"); coll.Remove(null); Assert.AreEqual(0, coll.Count, "Count-0"); }
public void GetAllValues_Type_Mismatch() { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase(); coll.Add("a", "string"); coll.Add("b", Int32.MinValue); string[] array = (string[])coll.GetAllValues(typeof(string)); Assert.AreEqual(1, array.Length, "Length"); Assert.AreEqual("string", array[0], "[0]"); }
public void GetAllValues() { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase(); coll.Add("a", "string1"); coll.Add("b", "string2"); object[] array = (object[])coll.GetAllValues(); Assert.AreEqual(2, array.Length, "Length"); Assert.AreEqual("string1", array[0], "[0]"); Assert.AreEqual("string2", array[1], "[1]"); }
public void Constructor_Int_Provider_Comparer() { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase(5, CaseInsensitiveHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant); coll.Add("a", "1"); int i = 0; IEnumerator e = coll.GetEnumerator(); while (e.MoveNext()) { i++; } Assert.AreEqual(1, i, "GetEnumerator"); }
private void CheckICollection(UnitTestNameObjectCollectionBase coll, int count) { ICollection collection = (coll as ICollection); Assert.AreEqual(count, collection.Count, "Count"); Assert.IsFalse(collection.IsSynchronized, "IsSynchronized"); Assert.IsNotNull(collection.SyncRoot, "SyncRoot"); string[] array = new string[count]; collection.CopyTo(array, 0); for (int i = 0; i < count; i++) { Assert.AreEqual(coll.GetKey(i), array[i], "#" + i.ToString()); } }
public void GetObjectData() { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase(CaseInsensitiveHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant); coll.Add("a", "1"); SerializationInfo si = new SerializationInfo(typeof(UnitTestNameObjectCollectionBase), new FormatterConverter()); coll.GetObjectData(si, new StreamingContext()); foreach (SerializationEntry se in si) { switch (se.Name) { case "HashProvider": Assert.AreSame(CaseInsensitiveHashCodeProvider.DefaultInvariant, se.Value, se.Name); break; case "Comparer": Assert.AreSame(CaseInsensitiveComparer.DefaultInvariant, se.Value, se.Name); break; case "ReadOnly": Assert.IsFalse((bool)se.Value, se.Name); break; case "Count": Assert.AreEqual(1, se.Value, se.Name); break; case "Values": Assert.AreEqual(1, (se.Value as object[]).Length, se.Name); break; case "Keys": Assert.AreEqual(1, (se.Value as string[]).Length, se.Name); break; case "Version": Assert.AreEqual(2, se.Value, se.Name); break; default: string msg = String.Format("Unexpected {0} information of type {1} with value '{2}'.", se.Name, se.ObjectType, se.Value); Assert.Fail(msg); break; } } }
public void GetObjectData_Info_Null() { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase(); try { coll.GetObjectData(null, new StreamingContext()); Assert.Fail("#1"); } catch (ArgumentNullException ex) { Assert.AreEqual(typeof(ArgumentNullException), ex.GetType(), "#2"); Assert.IsNull(ex.InnerException, "#3"); Assert.IsNotNull(ex.Message, "#4"); Assert.IsNotNull(ex.ParamName, "#5"); Assert.AreEqual("info", ex.ParamName, "#6"); } }
public void Add_ReadOnly() { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase(); coll._IsReadOnly = true; try { coll.Add("a", "1"); Assert.Fail("#1"); } catch (NotSupportedException ex) { // Collection is read-only Assert.AreEqual(typeof(NotSupportedException), ex.GetType(), "#2"); Assert.IsNull(ex.InnerException, "#3"); Assert.IsNotNull(ex.Message, "#4"); } }
public void GetObjectData_IEqualityComparer() { EqualityComparer comparer = new EqualityComparer(); UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase(5, comparer); coll.Add("a", "1"); coll.Add("b", "2"); coll._IsReadOnly = true; SerializationInfo si = new SerializationInfo(typeof(UnitTestNameObjectCollectionBase), new FormatterConverter()); coll.GetObjectData(si, new StreamingContext()); foreach (SerializationEntry se in si) { switch (se.Name) { case "KeyComparer": Assert.AreSame(comparer, se.Value, se.Name); break; case "ReadOnly": Assert.IsTrue((bool)se.Value, se.Name); break; case "Count": Assert.AreEqual(2, se.Value, se.Name); break; case "Values": Assert.AreEqual(2, (se.Value as object[]).Length, se.Name); break; case "Keys": Assert.AreEqual(2, (se.Value as string[]).Length, se.Name); break; case "Version": Assert.AreEqual(4, se.Value, se.Name); break; default: string msg = String.Format("Unexpected {0} information of type {1} with value '{2}'.", se.Name, se.ObjectType, se.Value); Assert.Fail(msg); break; } } }
public void Constructor_Int() { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase(0); for (int i = 0; i < 10; i++) { coll.Add(i.ToString(), i); } CheckICollection(coll, 10); Assert.AreEqual(10, coll.Keys.Count, "Keys"); coll.Clear(); Assert.AreEqual(0, coll.Count, "Count"); Assert.IsFalse(coll.HasKeys(), "HasKeys"); }
public void CopyTo_Index_Negative() { string [] array = new string [1]; UnitTestNameObjectCollectionBase c = new UnitTestNameObjectCollectionBase(); c.Add("1", "mono"); try { ((ICollection)c).CopyTo(array, -1); Assert.Fail("#1"); } catch (ArgumentOutOfRangeException ex) { Assert.AreEqual(typeof(ArgumentOutOfRangeException), ex.GetType(), "#2"); Assert.IsNull(ex.InnerException, "#3"); Assert.IsNotNull(ex.Message, "#4"); Assert.IsNotNull(ex.ParamName, "#5"); } }
public void CopyTo_MultipleDimensionStringArray() { string [,] matrix = new string [1, 1]; UnitTestNameObjectCollectionBase c = new UnitTestNameObjectCollectionBase(); c.Add("1", "mono"); try { ((ICollection)c).CopyTo(matrix, 0); Assert.Fail("#1"); } catch (ArgumentException ex) { // Multi dimension array is not supported on // this operation Assert.AreEqual(typeof(ArgumentException), ex.GetType(), "#2"); Assert.IsNull(ex.InnerException, "#3"); Assert.IsNotNull(ex.Message, "#4"); Assert.IsNull(ex.ParamName, "#5"); } }
public void CopyTo_NotEnoughSpace() { string [] array = new string [4]; UnitTestNameObjectCollectionBase c = new UnitTestNameObjectCollectionBase(); c.Add("1", "mono"); c.Add("2", "MoNo"); c.Add("3", "mOnO"); c.Add("4", "MONO"); try { ((ICollection)c).CopyTo(array, 2); Assert.Fail("#1"); } catch (ArgumentException ex) { // Insufficient space in the target location to // copy the information Assert.AreEqual(typeof(ArgumentException), ex.GetType(), "#2"); Assert.IsNull(ex.InnerException, "#3"); Assert.IsNotNull(ex.Message, "#4"); Assert.IsNull(ex.ParamName, "#5"); } }
private void CheckICollection (UnitTestNameObjectCollectionBase coll, int count) { ICollection collection = (coll as ICollection); Assert.AreEqual (count, collection.Count, "Count"); Assert.IsFalse (collection.IsSynchronized, "IsSynchronized"); Assert.IsNotNull (collection.SyncRoot, "SyncRoot"); string[] array = new string[count]; collection.CopyTo (array, 0); for (int i = 0; i < count; i++) { Assert.AreEqual (coll.GetKey (i), array[i], "#" + i.ToString ()); } }
public void Constructor_Default () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (); Assert.AreEqual (0, coll.Count, "Count-0"); Assert.IsFalse (coll._IsReadOnly, "IsReadOnly"); Assert.IsFalse (coll.HasKeys (), "HasKeys-0"); coll.Add ("a", "1"); CheckICollection (coll, 1); Assert.AreEqual (1, coll.Count, "Count-1"); Assert.AreEqual ("1", coll.Get (0), "Get(0)"); Assert.AreEqual (1, coll.GetAllKeys ().Length, "GetAllKeys"); Assert.IsTrue (coll.HasKeys (), "HasKeys-1"); coll.Add ("b", "2"); Assert.AreEqual (2, coll.Count, "Count-2"); Assert.AreEqual ("b", coll.GetKey (1), "GetKey(1)"); Assert.AreEqual (2, coll.GetAllValues ().Length, "GetAllValues"); coll.Remove ("a"); Assert.AreEqual (1, coll.Count, "Count-3"); coll.Set (0, "3"); Assert.AreEqual ("3", coll.Get (0), "Get(0)b"); coll.Set ("b", "4"); Assert.AreEqual ("4", coll.Get (0), "Get(0)c"); coll.RemoveAt (0); Assert.AreEqual (0, coll.Count, "Count-4"); Assert.IsFalse (coll.HasKeys (), "HasKeys-2"); }
public void Constructor_Int () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (0); for (int i = 0; i < 10; i++) coll.Add (i.ToString (), i); CheckICollection (coll, 10); Assert.AreEqual (10, coll.Keys.Count, "Keys"); coll.Clear (); Assert.AreEqual (0, coll.Count, "Count"); Assert.IsFalse (coll.HasKeys (), "HasKeys"); }
public void Constructor_Int_IEqualityComparer () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (5, new EqualityComparer ()); coll.Add ("a", "1"); CheckICollection (coll, 1); }
public void GetObjectData_IEqualityComparer () { EqualityComparer comparer = new EqualityComparer (); UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (5, comparer); coll.Add ("a", "1"); coll.Add ("b", "2"); coll._IsReadOnly = true; SerializationInfo si = new SerializationInfo (typeof (UnitTestNameObjectCollectionBase), new FormatterConverter ()); coll.GetObjectData (si, new StreamingContext ()); foreach (SerializationEntry se in si) { switch (se.Name) { case "KeyComparer": Assert.AreSame (comparer, se.Value, se.Name); break; case "ReadOnly": Assert.IsTrue ((bool) se.Value, se.Name); break; case "Count": Assert.AreEqual (2, se.Value, se.Name); break; case "Values": Assert.AreEqual (2, (se.Value as object[]).Length, se.Name); break; case "Keys": Assert.AreEqual (2, (se.Value as string[]).Length, se.Name); break; case "Version": Assert.AreEqual (4, se.Value, se.Name); break; default: string msg = String.Format ("Unexpected {0} information of type {1} with value '{2}'.", se.Name, se.ObjectType, se.Value); Assert.Fail (msg); break; } } }
public void Constructor_Provider_Comparer () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default); coll.Add (null, null); Assert.AreEqual (1, coll.Count, "Count-1"); coll.Remove (null); Assert.AreEqual (0, coll.Count, "Count-0"); }
public void GetObjectData_Info_Null () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (); try { coll.GetObjectData (null, new StreamingContext ()); Assert.Fail ("#1"); } catch (ArgumentNullException ex) { Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2"); Assert.IsNull (ex.InnerException, "#3"); Assert.IsNotNull (ex.Message, "#4"); Assert.IsNotNull (ex.ParamName, "#5"); Assert.AreEqual ("info", ex.ParamName, "#6"); } }
public void Clear_ReadOnly () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (); coll._IsReadOnly = true; try { // even if we're empty coll.Clear (); Assert.Fail ("#1"); } catch (NotSupportedException ex) { // Collection is read-only Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2"); Assert.IsNull (ex.InnerException, "#3"); Assert.IsNotNull (ex.Message, "#4"); } }
public void GetObjectData () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (CaseInsensitiveHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant); coll.Add ("a", "1"); SerializationInfo si = new SerializationInfo (typeof (UnitTestNameObjectCollectionBase), new FormatterConverter ()); coll.GetObjectData (si, new StreamingContext ()); foreach (SerializationEntry se in si) { switch (se.Name) { case "HashProvider": Assert.AreSame (CaseInsensitiveHashCodeProvider.DefaultInvariant, se.Value, se.Name); break; case "Comparer": Assert.AreSame (CaseInsensitiveComparer.DefaultInvariant, se.Value, se.Name); break; case "ReadOnly": Assert.IsFalse ((bool)se.Value, se.Name); break; case "Count": Assert.AreEqual (1, se.Value, se.Name); break; case "Values": Assert.AreEqual (1, (se.Value as object[]).Length, se.Name); break; case "Keys": Assert.AreEqual (1, (se.Value as string[]).Length, se.Name); break; case "Version": Assert.AreEqual (2, se.Value, se.Name); break; default: string msg = String.Format ("Unexpected {0} information of type {1} with value '{2}'.", se.Name, se.ObjectType, se.Value); Assert.Fail (msg); break; } } }
public void RemoveAt_ReadOnly () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (); coll.Add ("a", "!"); coll._IsReadOnly = true; try { coll.RemoveAt (0); Assert.Fail ("#1"); } catch (NotSupportedException ex) { // Collection is read-only Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2"); Assert.IsNull (ex.InnerException, "#3"); Assert.IsNotNull (ex.Message, "#4"); } }
public void Set_ReadOnly () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (); coll.Add ("a", "!"); coll._IsReadOnly = true; #if NET_2_0 try { coll.Set (0, "1"); Assert.Fail ("#1"); } catch (NotSupportedException ex) { // Collection is read-only Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2"); Assert.IsNull (ex.InnerException, "#3"); Assert.IsNotNull (ex.Message, "#4"); } #else coll.Set (0, "1"); Assert.AreEqual ("1", coll.Get (0), "Get(0)"); #endif }
public void CopyTo_NotEnoughSpace () { string [] array = new string [4]; UnitTestNameObjectCollectionBase c = new UnitTestNameObjectCollectionBase (); c.Add ("1", "mono"); c.Add ("2", "MoNo"); c.Add ("3", "mOnO"); c.Add ("4", "MONO"); try { ((ICollection) c).CopyTo (array, 2); Assert.Fail ("#1"); } catch (ArgumentException ex) { // Insufficient space in the target location to // copy the information Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2"); Assert.IsNull (ex.InnerException, "#3"); Assert.IsNotNull (ex.Message, "#4"); Assert.IsNull (ex.ParamName, "#5"); } }
public void CopyTo_MultipleDimensionStringArray () { string [,] matrix = new string [1,1]; UnitTestNameObjectCollectionBase c = new UnitTestNameObjectCollectionBase (); c.Add ("1", "mono"); try { ((ICollection)c).CopyTo (matrix, 0); Assert.Fail ("#1"); } catch (ArgumentException ex) { // Multi dimension array is not supported on // this operation Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2"); Assert.IsNull (ex.InnerException, "#3"); Assert.IsNotNull (ex.Message, "#4"); Assert.IsNull (ex.ParamName, "#5"); } }
public void Constructor_Int_Provider_Comparer () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (5, CaseInsensitiveHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant); coll.Add ("a", "1"); int i = 0; IEnumerator e = coll.GetEnumerator (); while (e.MoveNext ()) { i++; } Assert.AreEqual (1, i, "GetEnumerator"); }
public void GetAllValues () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (); coll.Add ("a", "string1"); coll.Add ("b", "string2"); object[] array = (object[]) coll.GetAllValues (); Assert.AreEqual (2, array.Length, "Length"); Assert.AreEqual ("string1", array[0], "[0]"); Assert.AreEqual ("string2", array[1], "[1]"); }
public void GetAllValues_Type_Mismatch () { UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase (); coll.Add ("a", "string"); coll.Add ("b", Int32.MinValue); string[] array = (string[]) coll.GetAllValues (typeof (string)); Assert.AreEqual (1, array.Length, "Length"); Assert.AreEqual ("string", array[0], "[0]"); }
public void CopyTo_Array_Null () { UnitTestNameObjectCollectionBase c = new UnitTestNameObjectCollectionBase (); #if NET_2_0 try { ((ICollection)c).CopyTo (null, 0); Assert.Fail ("#A1"); } catch (ArgumentNullException ex) { Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#A2"); Assert.IsNull (ex.InnerException, "#A3"); Assert.IsNotNull (ex.Message, "#A4"); Assert.IsNotNull (ex.ParamName, "#A5"); Assert.AreEqual ("array", ex.ParamName, "#A6"); } #else ((ICollection) c).CopyTo (null, 0); #endif c.Add ("1", "mono"); try { ((ICollection) c).CopyTo (null, 0); Assert.Fail ("#B1"); #if NET_2_0 } catch (ArgumentNullException ex) { Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#B2"); Assert.IsNull (ex.InnerException, "#B3"); Assert.IsNotNull (ex.Message, "#B4"); Assert.IsNotNull (ex.ParamName, "#B5"); Assert.AreEqual ("array", ex.ParamName, "#B6"); } #else } catch (NullReferenceException) {
public void CopyTo_Index_Negative () { string [] array = new string [1]; UnitTestNameObjectCollectionBase c = new UnitTestNameObjectCollectionBase (); c.Add ("1", "mono"); try { ((ICollection) c).CopyTo (array, -1); Assert.Fail ("#1"); } catch (ArgumentOutOfRangeException ex) { Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#2"); Assert.IsNull (ex.InnerException, "#3"); Assert.IsNotNull (ex.Message, "#4"); Assert.IsNotNull (ex.ParamName, "#5"); } }