/// <summary> /// Check applying delta to keys1 gives keys2 /// </summary> /// <param name="delta"></param> /// <param name="keys1"></param> /// <param name="keys2"></param> private static void checkApplyDelta(Delta delta, Keys keys1, Keys keys2) { Assert.AreEqual(keys1.Alter(delta.Added, delta.Removed), keys2); }
public void delta() { Keys addedKeys = new Keys(); Keys removedKeys = new Keys(); Keys baseKeys = new Keys(); addedKeys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, new Key("added/removed key")); addedKeys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, new Key("added key 1")); addedKeys.Add(KeyScheme.Sha1Producer, new Key("added key 2")); removedKeys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, new Key("added/removed key")); removedKeys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, new Key("non existent key")); removedKeys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, new Key("removed key")); baseKeys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, new Key("kept key")); baseKeys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, new Key("removed key")); Keys delta = baseKeys.Alter(addedKeys, removedKeys); Keys correctKeys = new Keys(); correctKeys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, new Key("added key 1")); correctKeys.Add(KeyScheme.Sha1Producer, new Key("added key 2")); correctKeys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Producer, new Key("kept key")); Assert.AreEqual(correctKeys, delta); // check delta works with empty keys Keys keys4 = Keys.EmptyKeys.Alter(addedKeys, removedKeys); correctKeys = new Keys(); correctKeys.Add(KeyScheme.Sha1Dual, DualKeyScheme.Subset.Consumer, new Key("added key 1")); correctKeys.Add(KeyScheme.Sha1Producer, new Key("added key 2")); Assert.AreEqual(correctKeys, keys4); }