2 // System.Runtime.Serialization.ObjectIDGeneratorTests.cs
4 // Author: Duncan Mak (duncan@ximian.com)
10 using System.Diagnostics;
11 using System.Runtime.Serialization;
13 using NUnit.Framework;
15 namespace MonoTests.System.Runtime.Serialization
17 public class ObjectIDGeneratorTests
19 ObjectIDGenerator generator;
26 protected void SetUp ()
28 generator = new ObjectIDGenerator ();
32 // Tests adding an ID for a new object
34 public void TestGetId1 ()
37 id = generator.GetId (obj1, out testBool1);
39 Assert.AreEqual (1L, id); // should start at 1, "A1");
40 Assert.AreEqual (true, testBool1); // firstTime should be true, "A2");
44 // Tests getting the ID for an existing object
46 public void TestGetId2 ()
50 id = generator.GetId (obj1, out testBool1);
51 long testId1 = generator.GetId (obj1, out testBool2);
53 Assert.AreEqual (testId1, id); // same object, same ID, "B1");
54 Assert.AreEqual (false, testBool2); // no longer firstTime, "B2");
58 // Tests getting the ID for an existing object
60 public void TestHasId1 ()
64 id = generator.GetId (obj1, out testBool1);
65 long testId2 = generator.HasId (obj1, out testBool3);
67 Assert.AreEqual (false, testBool3); // this has been inserted before, "C1");
68 Assert.AreEqual (id, testId2); // we should get the same ID, "C2");
72 // Tests getting the ID for a non-existent object
74 public void TestHasId2 ()
77 long testId3 = generator.HasId (obj2, out testBool4);
79 Assert.AreEqual (0L, testId3, "D1");
80 Assert.AreEqual (true, testBool4, "D2");