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); }
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 }); }); }
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)); }
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 }); }); }
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)); }
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); } }
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); }