public void JsonSerialization() { Cid a = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4"; string json = JsonConvert.SerializeObject(a); Assert.AreEqual($"\"{a.Encode()}\"", json); var b = JsonConvert.DeserializeObject <Cid>(json); Assert.AreEqual(a, b); a = null; json = JsonConvert.SerializeObject(a); b = JsonConvert.DeserializeObject <Cid>(json); Assert.IsNull(b); var x = new CidAndX { Cid = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4", X = 42 }; json = JsonConvert.SerializeObject(x); var y = JsonConvert.DeserializeObject <CidAndX>(json); Assert.AreEqual(x.Cid, y.Cid); Assert.AreEqual(x.X, y.X); x.Cid = null; json = JsonConvert.SerializeObject(x); y = JsonConvert.DeserializeObject <CidAndX>(json); Assert.AreEqual(x.Cid, y.Cid); Assert.AreEqual(x.X, y.X); }
public void Implicit_Conversion_From_V0_String() { var hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4"; Cid cid = hash; Assert.AreEqual(0, cid.Version); Assert.AreEqual("dag-pb", cid.ContentType); Assert.AreEqual("base58btc", cid.Encoding); Assert.AreEqual(hash, cid.Encode()); }
public void Immutable() { Cid cid = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4"; Assert.AreEqual("QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4", cid.Encode()); ExceptionAssert.Throws <NotSupportedException>(() => cid.ContentType = "dag-cbor"); ExceptionAssert.Throws <NotSupportedException>(() => cid.Encoding = "base64"); ExceptionAssert.Throws <NotSupportedException>(() => cid.Hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L5"); ExceptionAssert.Throws <NotSupportedException>(() => cid.Version = 0); }
public void Encode_Upgrade_to_V1_Encoding() { var cid = new Cid { Encoding = "base64", Hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4" }; Assert.AreEqual(1, cid.Version); Assert.AreEqual("mAXASILlNJ7mTTT4IpS5S19p9q/rEhO/jelOA7pCI96zi783p", cid.Encode()); }
public void Encode_Upgrade_to_V1_ContentType() { var cid = new Cid { ContentType = "raw", Hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4" }; Assert.AreEqual(1, cid.Version); Assert.AreEqual("zb2rhj7crUKTQYRGCRATFaQ6YFLTde2YzdqbbhAASkL9uRDXn", cid.Encode()); }
public void Encode_V1_Invalid_Encoding() { var cid = new Cid { Version = 1, ContentType = "raw", Encoding = "unknown", Hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4" }; Assert.ThrowsException <KeyNotFoundException>(() => cid.Encode()); }
public void Encode_V1() { var cid = new Cid { Version = 1, ContentType = "raw", Encoding = "base58btc", Hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4" }; Assert.AreEqual("zb2rhj7crUKTQYRGCRATFaQ6YFLTde2YzdqbbhAASkL9uRDXn", cid.Encode()); }
public void Decode_Invalid_Version() { var cid = new Cid { Version = 32767, ContentType = "raw", Encoding = "base58btc", Hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4" }; var s = cid.Encode(); Assert.ThrowsException <FormatException>(() => Cid.Decode(s)); }
public void Encode_V0() { var hash = "QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V"; Cid cid = new MultiHash(hash); Assert.AreEqual(hash, cid.Encode()); Assert.AreEqual(0, cid.Version); cid = new Cid { ContentType = "dag-pb", Encoding = "base58btc", Hash = hash }; Assert.AreEqual(hash, cid.Encode()); Assert.AreEqual(0, cid.Version); }
public void Encode_V1() { var cid = new Cid { Version = 1, ContentType = "raw", Encoding = "base58btc", Hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4" }; Assert.AreEqual("zb2rhj7crUKTQYRGCRATFaQ6YFLTde2YzdqbbhAASkL9uRDXn", cid.Encode()); cid = new Cid { ContentType = "raw", Hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4" }; Assert.AreEqual(1, cid.Version); Assert.AreEqual("base32", cid.Encoding); Assert.AreEqual("bafkreifzjut3te2nhyekklss27nh3k72ysco7y32koao5eei66wof36n5e", cid.Encode()); }
public void Encode_Upgrade_to_V1_Hash() { var hello = Encoding.UTF8.GetBytes("Hello, world."); var mh = MultiHash.ComputeHash(hello, "sha2-512"); var cid = new Cid { Hash = mh }; Assert.AreEqual(1, cid.Version); Assert.AreEqual("base32", cid.Encoding); Assert.AreEqual("bafybgqfnbq34ghljwmk7hka7cpem3zybbffnsfzfxinq3qyztsuxcntbxaua23xx42hrgptcchrolkndcucelv3pc4eoarjbwdxagtylboxsm", cid.Encode()); }
public void Encode_Upgrade_to_V1_ContentType() { var cid = new Cid { ContentType = "raw", Hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4" }; Assert.AreEqual(1, cid.Version); Assert.AreEqual("base32", cid.Encoding); Assert.AreEqual("bafkreifzjut3te2nhyekklss27nh3k72ysco7y32koao5eei66wof36n5e", cid.Encode()); }
public void Encode_Upgrade_to_V1_Hash() { var hello = Encoding.UTF8.GetBytes("Hello, world."); var mh = MultiHash.ComputeHash(hello, "sha2-512"); var cid = new Cid { Hash = mh }; Assert.AreEqual(1, cid.Version); Assert.AreEqual("zBunRFxZVcKeu8wAbUg92z2JK6UukiL7EnPR1D6TZaQCsPpRe7KzcmioKFyi2oEZd9ffwpbKTib1pucMQrDyRnAdaqwbB", cid.Encode()); }