Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
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());
        }
Ejemplo n.º 5
0
        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());
        }
Ejemplo n.º 6
0
        public void Encode_V1_Invalid_Encoding()
        {
            var cid = new Cid
            {
                Version     = 1,
                ContentType = "raw",
                Encoding    = "unknown",
                Hash        = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4"
            };

            Assert.ThrowsException <KeyNotFoundException>(() => cid.Encode());
        }
Ejemplo n.º 7
0
        public void Encode_V1()
        {
            var cid = new Cid
            {
                Version     = 1,
                ContentType = "raw",
                Encoding    = "base58btc",
                Hash        = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4"
            };

            Assert.AreEqual("zb2rhj7crUKTQYRGCRATFaQ6YFLTde2YzdqbbhAASkL9uRDXn", cid.Encode());
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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());
        }
Ejemplo n.º 11
0
        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());
        }
Ejemplo n.º 12
0
        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());
        }
Ejemplo n.º 13
0
        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());
        }