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 : TestCase
19 ObjectIDGenerator generator;
25 public static ITest Suite {
26 get { return new TestSuite (typeof (ObjectIDGeneratorTests)); }
29 public ObjectIDGeneratorTests (string name)
34 protected override void SetUp ()
36 generator = new ObjectIDGenerator ();
40 // Tests adding an ID for a new object
42 public void TestGetId1 ()
45 id = generator.GetId (obj1, out testBool1);
47 AssertEquals ("A1", 1L, id); // should start at 1
48 AssertEquals ("A2", true, testBool1); // firstTime should be true
52 // Tests getting the ID for an existing object
54 public void TestGetId2 ()
58 id = generator.GetId (obj1, out testBool1);
59 long testId1 = generator.GetId (obj1, out testBool2);
61 AssertEquals ("B1", testId1, id); // same object, same ID
62 AssertEquals ("B2", false, testBool2); // no longer firstTime
66 // Tests getting the ID for an existing object
68 public void TestHasId1 ()
72 id = generator.GetId (obj1, out testBool1);
73 long testId2 = generator.HasId (obj1, out testBool3);
75 AssertEquals ("C1", false, testBool3); // this has been inserted before
76 AssertEquals ("C2", id, testId2); // we should get the same ID
80 // Tests getting the ID for a non-existent object
82 public void TestHasId2 ()
85 long testId3 = generator.HasId (obj2, out testBool4);
87 AssertEquals ("D1", 0L, testId3);
88 AssertEquals ("D2", true, testBool4);