예제 #1
0
        public void TestToString()
        {
            // Hash.ToString is a very important method, because the result of it is used as keys in Redis.
            var hash = ContentHash.Random(HashType.Vso0);

            var shortHash = new ShortHash(hash);

            hash.ToString().Should().Contain(shortHash.ToString());

            var sb = new StringBuilder();

            shortHash.ToString(sb);
            shortHash.ToString().Should().BeEquivalentTo(sb.ToString());
        }
        public void RoundtripShortHashBinary(HashType hashType)
        {
            using (var ms = new MemoryStream())
            {
                using (var writer = new BinaryWriter(ms))
                {
                    var h1         = ContentHash.Random(hashType);
                    var shortHash1 = new ShortHash(h1);
                    shortHash1.Serialize(writer);
                    Assert.Equal(ShortHash.SerializedLength, ms.Length);
                    ms.Position = 0;

                    using (var reader = new BinaryReader(ms))
                    {
                        var shortHash2 = new ShortHash(ReadOnlyFixedBytes.ReadFrom(reader, ShortHash.SerializedLength));
                        Assert.Equal(hashType, shortHash2.HashType);
                        Assert.Equal(shortHash1.ToString(), shortHash2.ToString());
                    }
                }
            }
        }