Ejemplo n.º 1
0
        public void Constructor_DifferentParts_RecoveredValidPrivateKey()
        {
            var signature = new WalletSignature()
            {
                Version        = 1,
                PartsThreshold = 2,
                PartsTotal     = 4
            };

            var partA = new WalletPart()
            {
                Signature = new WalletSignature(signature.GetShortNotation()),
                Data      = "0e1-1-5ca6e43983cff56aa90fd6b66ea844a7c22a92dd92343888" // Corrupt data
            };

            var partB = new WalletPart()
            {
                Signature = new WalletSignature(signature.GetShortNotation()),
                Data      = "631-7-8b1b1703484d828fe2a61b9c63497aa68494aa226a272657"
            };

            Assert.Throws <ArgumentException>(() =>
            {
                var wallet = new Wallet(new List <WalletPart>()
                {
                    partA, partB
                });
            }, Strings.ChecksumExceptionSharesCorrupt);
        }
Ejemplo n.º 2
0
        public void Constructor_EnoughValidParts_NoExceptionExpected()
        {
            var signature = new WalletSignature()
            {
                Version        = 1,
                PartsThreshold = 2,
                PartsTotal     = 4
            };

            var partA = new WalletPart()
            {
                Signature = new WalletSignature(signature.GetShortNotation()),
                Data      = "0e1-1-5ca6e43983ccf56aa90fd6b66ea844a7c22a92dd92343888"
            };

            var partB = new WalletPart()
            {
                Signature = new WalletSignature(signature.GetShortNotation()),
                Data      = "631-7-8b1b1703484d828fe2a61b9c63497aa68494aa226a272657"
            };

            Assert.DoesNotThrow(() =>
            {
                var wallet = new Wallet(new List <WalletPart>()
                {
                    partA, partB
                });
            });
        }
Ejemplo n.º 3
0
        public void Constructor_ValidPartsWithDuplicates_ExpectedTrueQuantity()
        {
            var signature = new WalletSignature()
            {
                Version        = 1,
                PartsThreshold = 2,
                PartsTotal     = 4
            };

            var partA = new WalletPart()
            {
                Signature = new WalletSignature(signature.GetShortNotation()),
                Data      = "631-7-8b1b1703484d828fe2a61b9c63497aa68494aa226a272657"
            };

            var partB = new WalletPart()
            {
                Signature = new WalletSignature(signature.GetShortNotation()),
                Data      = "5d1-5-c67046150ecd502cdbc15f7a67e990a646febd88c229d3ea"
            };

            var partC = new WalletPart()
            {
                Signature = new WalletSignature(signature.GetShortNotation()),
                Data      = "5d1-5-c67046150ecd502cdbc15f7a67e990a646febd88c229d3ea"
            };

            var wallet = new Wallet(new List <WalletPart>()
            {
                partA, partB, partC
            });

            Assert.That(wallet.Parts.Count, Is.Not.EqualTo(3));
            Assert.That(wallet.Parts.Count, Is.EqualTo(2));
        }
Ejemplo n.º 4
0
        public void Constructor_DuplicateParts_ArgumentExceptionExpected()
        {
            var signature = new WalletSignature()
            {
                Version        = 1,
                PartsThreshold = 2,
                PartsTotal     = 4
            };

            var partA = new WalletPart()
            {
                Signature = new WalletSignature(signature.GetShortNotation()),
                Data      = "datadatadata"
            };

            var partB = new WalletPart()
            {
                Signature = new WalletSignature(signature.GetShortNotation()),
                Data      = "datadatadata"
            };

            Assert.Throws <ArgumentException>(() =>
            {
                var wallet = new Wallet(new List <WalletPart>()
                {
                    partA, partB
                });
            });
        }
Ejemplo n.º 5
0
        public void GetShortNotation_ValidSignature_ValidShortNotation()
        {
            var expectedShortNotation = "12|5|10";

            var signature = new WalletSignature()
            {
                Version        = 12,
                PartsThreshold = 5,
                PartsTotal     = 10
            };

            var shortNotation = signature.GetShortNotation();

            Assert.That(shortNotation, Is.EqualTo(expectedShortNotation));
        }
Ejemplo n.º 6
0
        public void Constructor_ValidInitialization_ValidPartsContent()
        {
            var signature = new WalletSignature()
            {
                Version        = 1,
                PartsThreshold = 2,
                PartsTotal     = 4
            };

            var wallet = new Wallet(signature, "constant forest adore false green weave stop guy fur freeze giggle clock");

            // Validate parts's content
            Console.WriteLine("Signature: " + signature.GetShortNotation());
            foreach (var part in wallet.Parts)
            {
                Assert.That(part.Signature.Equals(signature));
                Assert.That(part.Data, Is.Not.Null.Or.Empty);

                Console.WriteLine("Data:      " + part.Data);
            }
        }
Ejemplo n.º 7
0
        public void Constructor_NotEnoughParts_ArgumentExceptionExpected()
        {
            var signature = new WalletSignature()
            {
                Version        = 1,
                PartsThreshold = 2,
                PartsTotal     = 4
            };

            var part = new WalletPart()
            {
                Signature = new WalletSignature(signature.GetShortNotation()),
                Data      = "datadatadata"
            };

            Assert.Throws <ArgumentException>(() =>
            {
                var wallet = new Wallet(new List <WalletPart>()
                {
                    part
                });
            }, Strings.NotEnoughShares);
        }