public void T06_RecordKeyDelimiterEscape() { string DELIM = new String(RecordKey.PRINTED_DELIMITER, 1); RecordKey key1 = new RecordKey(); key1.appendKeyParts("1", "2", "3"); Assert.AreEqual(3, key1.numParts()); RecordKey dkey1 = new RecordKey(key1.encode()); Assert.AreEqual(3, dkey1.numParts(), "dkey1 delimiter decode"); RecordKey key2 = new RecordKey(); key2.appendKeyPart("1" + DELIM + "2" + DELIM + "3"); Assert.AreEqual(1, key2.numParts()); RecordKey dkey2 = new RecordKey(key2.encode()); Assert.AreEqual(1, dkey2.numParts(), "dkey2 delimiter decode"); // key2 > key1 Assert.AreEqual(1, key2.CompareTo(key1)); Assert.AreEqual(-1, key1.CompareTo(key2)); }
public void T02b_RecordKeyNesting() { String[] parts1 = { "aaaa", "bbbb" }; String[] parts2 = { "xxxx", "yyyy", "zzzz" }; RecordKey nestedkey = new RecordKey(); nestedkey.appendKeyParts(parts2); RecordKey parentkey = new RecordKey(); parentkey.appendKeyPart(parts1[0]); // "aaaa" parentkey.appendKeyPart(nestedkey.encode()); // (xxxx,yyyy,zzzz) parentkey.appendKeyPart(parts1[1]); // "bbbb" RecordKey decodedkey = new RecordKey(parentkey.encode()); Assert.AreEqual(decodedkey.ToString(), parentkey.ToString(), "tostring versions of keys don't match"); Assert.AreEqual(decodedkey.numParts(), parentkey.numParts(), "nested delimiters are changing number of keyparts"); Assert.AreEqual(decodedkey, parentkey, "nested key encode/decode error"); }