Exemplo n.º 1
0
        public void addRemove()
        {
            Keys keys = new Keys();

            keys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, new Key("dual key 1"));
            keys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, new Key("dual key 2"));

            keys.Add(KeyScheme.Sha1Producer, new Key("producer key 1"));
            keys.Add(KeyScheme.Sha1Consumer, new Key("consumer key 1"));

            DualKeySet dualKeys = keys.KeysetFor(KeyScheme.Sha1Dual);

            Assert.AreEqual(1, dualKeys.ConsumerKeys.Count);
            Assert.AreEqual(1, dualKeys.ProducerKeys.Count);

            keys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, new Key("dual key 3"));
            Assert.AreEqual(2, keys.KeysetFor(KeyScheme.Sha1Dual).ProducerKeys.Count);

            keys.Remove(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, new Key("dual key 3"));
            Assert.AreEqual(1, keys.KeysetFor(KeyScheme.Sha1Dual).ProducerKeys.Count);

            keys.Remove(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, new Key("dual key 1"));
            Assert.AreEqual(0, keys.KeysetFor(KeyScheme.Sha1Dual).ProducerKeys.Count);

            // remove a non-existent key, check nothing Bad happens
            keys.Remove(KeyScheme.Sha1Consumer, new Key("blah"));

            keys.Remove(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, new Key("dual key 2"));
            Assert.AreEqual(0, keys.KeysetFor(KeyScheme.Sha1Dual).ConsumerKeys.Count);

            SingleKeySet consumerKeys = keys.KeysetFor(KeyScheme.Sha1Consumer);
            Assert.AreEqual(1, consumerKeys.Count);
            keys.Remove(KeyScheme.Sha1Consumer, new Key("consumer key 1"));
            Assert.AreEqual(0, consumerKeys.Count);

            SingleKeySet producerKeys = keys.KeysetFor(KeyScheme.Sha1Producer);
            Assert.AreEqual(1, producerKeys.Count);
            keys.Remove(KeyScheme.Sha1Producer, new Key("producer key 1"));
            Assert.AreEqual(0, producerKeys.Count);

            Assert.IsTrue(keys.IsEmpty);

            // remove a non-existent key, check nothing Bad happens
            keys.Remove(KeyScheme.Sha1Consumer, new Key("blah"));
        }
Exemplo n.º 2
0
        public void equality()
        {
            Assert.IsTrue(new Key("a test key number 1").Equals(new Key("a test key number 1")));
            Assert.IsFalse(new Key("a test key number 1").Equals(new Key("a test key number 2")));

            Assert.AreEqual(new Key("a test key number 1").GetHashCode(),
                          new Key("a test key number 1").GetHashCode());

            // test Keys.equals ()
            Keys keys1 = new Keys();
            keys1.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, new Key("dual key 1"));
            keys1.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, new Key("dual key 2"));

            keys1.Add(KeyScheme.Sha1Producer, new Key("producer key 1"));
            keys1.Add(KeyScheme.Sha1Consumer, new Key("consumer key 1"));

            Keys keys2 = new Keys();
            keys2.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, new Key("dual key 1"));
            keys2.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, new Key("dual key 2"));

            keys2.Add(KeyScheme.Sha1Producer, new Key("producer key 1"));
            keys2.Add(KeyScheme.Sha1Consumer, new Key("consumer key 1"));

            Assert.AreEqual(keys1.GetHashCode(), keys2.GetHashCode());
            Assert.AreEqual(keys1, keys2);

            keys2.Remove(KeyScheme.Sha1Consumer, new Key("consumer key 1"));

            Assert.IsFalse(keys1.Equals(keys2));
        }