コード例 #1
0
ファイル: TestKeys.cs プロジェクト: renber/AvisNet
        public void computeDeltaSingleScheme()
        {
            Keys keys1 = new Keys();
            Keys keys2 = new Keys();

            Key key1 = new Key("key 1");
            Key key2 = new Key("key 2");

            Delta delta = keys1.DeltaFrom(keys2);

            Assert.AreEqual(0, delta.Added.KeysetFor(KeyScheme.Sha1Producer).Count);
            Assert.AreEqual(0, delta.Added.KeysetFor(KeyScheme.Sha1Consumer).Count);
            Assert.AreEqual(0, delta.Added.KeysetFor(KeyScheme.Sha1Dual).Count);

            Assert.AreEqual(0, delta.Removed.KeysetFor(KeyScheme.Sha1Producer).Count);
            Assert.AreEqual(0, delta.Removed.KeysetFor(KeyScheme.Sha1Consumer).Count);
            Assert.AreEqual(0, delta.Removed.KeysetFor(KeyScheme.Sha1Dual).Count);

            // add a single producer key
            keys2.Add(KeyScheme.Sha1Producer, key1);

            delta = keys1.DeltaFrom(keys2);
            Assert.AreEqual(1, delta.Added.KeysetFor(KeyScheme.Sha1Producer).Count);
            Assert.AreEqual(0, delta.Removed.KeysetFor(KeyScheme.Sha1Producer).Count);

            checkApplyDelta(delta, keys1, keys2);

            // remove a single producer key
            keys1.Add(KeyScheme.Sha1Producer, key2);

            delta = keys1.DeltaFrom(keys2);
            Assert.AreEqual(1, delta.Added.KeysetFor(KeyScheme.Sha1Producer).Count);
            Assert.AreEqual(1, delta.Removed.KeysetFor(KeyScheme.Sha1Producer).Count);

            checkApplyDelta(delta, keys1, keys2);

            // key1 is now in both sets
            keys1.Add(KeyScheme.Sha1Producer, key1);

            delta = keys1.DeltaFrom(keys2);
            Assert.AreEqual(0, delta.Added.KeysetFor(KeyScheme.Sha1Producer).Count);
            Assert.AreEqual(1, delta.Removed.KeysetFor(KeyScheme.Sha1Producer).Count);

            // key2 is not in both
            keys2.Add(KeyScheme.Sha1Producer, key2);

            delta = keys1.DeltaFrom(keys2);
            Assert.AreEqual(0, delta.Added.KeysetFor(KeyScheme.Sha1Producer).Count);
            Assert.AreEqual(0, delta.Removed.KeysetFor(KeyScheme.Sha1Producer).Count);

            checkApplyDelta(delta, keys1, keys2);
        }
コード例 #2
0
ファイル: TestKeys.cs プロジェクト: renber/AvisNet
        public void computeDeltaDual()
        {
            Keys keys1 = new Keys();
            Keys keys2 = new Keys();

            Key key1 = new Key("key 1");
            Key key2 = new Key("key 2");
            Key key3 = new Key("key 3");

            keys1.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, key1);
            keys1.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, key2);
            keys1.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, key3);

            keys2.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, key3);
            keys2.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, key3);

            Delta delta = keys1.DeltaFrom(keys2);
            Assert.AreEqual(1, delta.Added.KeysetFor(KeyScheme.Sha1Dual).ProducerKeys.Count);
            Assert.AreEqual(1, delta.Removed.KeysetFor(KeyScheme.Sha1Dual).ProducerKeys.Count);

            Assert.AreEqual(0, delta.Added.KeysetFor(KeyScheme.Sha1Dual).ConsumerKeys.Count);
            Assert.AreEqual(1, delta.Removed.KeysetFor(KeyScheme.Sha1Dual).ConsumerKeys.Count);

            checkApplyDelta(delta, keys1, keys2);
        }