public void KeyAttributeGenerateTest()
        {
            var test = new KeyClass { Uid = 1000 };
            var kg = new IdentityKeyGenerator();
            var key = kg.Generate(test);

            Assert.AreEqual("uid:1000", key.ToString());
        }
        public void NoKeyAttributeGenerateTest2()
        {
            var test = new UnkeyedClass { UnkeyedClassId = 1000 };
            var kg = new IdentityKeyGenerator();
            var key = kg.Generate(test);

            Assert.AreEqual("unkeyedclassid:1000", key.ToString());
        }
        public void assign_with_existing_id()
        {
            var sequence = Substitute.For <ISequence>();

            var generator = new IdentityKeyGenerator("foo", sequence);

            bool assigned = true;

            generator.Assign("foo/3", out assigned).ShouldBe("foo/3");

            assigned.ShouldBeFalse();
        }
        public void assign_with_existing_id()
        {
            var sequence = Substitute.For<ISequence>();

            var generator = new IdentityKeyGenerator("foo", sequence);

            bool assigned = true;

            generator.Assign("foo/3", out assigned).ShouldBe("foo/3");

            assigned.ShouldBeFalse();

        }
        public void assign_with_empty_id()
        {
            var sequence = Substitute.For <ISequence>();

            sequence.NextLong().Returns(13);

            var generator = new IdentityKeyGenerator("foo", sequence);


            bool assigned = false;

            generator.Assign(string.Empty, out assigned).ShouldBe("foo/13");

            assigned.ShouldBeTrue();
        }
        public void assign_with_empty_id()
        {
            var sequence = Substitute.For<ISequence>();
            sequence.NextLong().Returns(13);

            var generator = new IdentityKeyGenerator("foo", sequence);


            bool assigned = false;

            generator.Assign(string.Empty, out assigned).ShouldBe("foo/13");

            assigned.ShouldBeTrue();

        }