예제 #1
0
 public void SetStartIdTest02()
 {
     // Test to make sure "SetStartId" throws an exception for wrong input.
     Assert.Throws<ArgumentException>(() =>
     {
         IdGenerator generator = new IdGenerator();
         generator.SetStartId(0x12345678);
     });
 }
예제 #2
0
        public void SetStartIdTest01()
        {
            // Test to make sure the start id is properly set, and that
            // trying to get the next id returns the next higher number.
            IdGenerator generator = new IdGenerator();
            uint maxNodeId = (((uint)ComponentType.Node) | 0x1234);
            uint maxSlotId = (((uint)ComponentType.Slot) | 0x4567);
            uint maxEdgeId = (((uint)ComponentType.Edge) | 0x69ab);
            uint maxBubbleId = (((uint)ComponentType.Bubble) | 0x89ab);

            generator.SetStartId(maxNodeId);
            generator.SetStartId(maxSlotId);
            generator.SetStartId(maxEdgeId);
            generator.SetStartId(maxBubbleId);

            uint nextNodeId = generator.GetNextId(ComponentType.Node);
            uint nextSlotId = generator.GetNextId(ComponentType.Slot);
            uint nextEdgeId = generator.GetNextId(ComponentType.Edge);
            uint nextBubbleId = generator.GetNextId(ComponentType.Bubble);

            Assert.AreEqual(1, nextNodeId - maxNodeId);
            Assert.AreEqual(1, nextSlotId - maxSlotId);
            Assert.AreEqual(1, nextEdgeId - maxEdgeId);
            Assert.AreEqual(1, nextBubbleId - maxBubbleId);
        }