public void InterpretShortNotationByConstructor_ValidNotationInvalidData_InvalidSignature() { var shortNotation = "1|10|3"; var signature = new WalletSignature(shortNotation); Assert.IsFalse(signature.IsValid()); }
public void IsValid_ValidSignature_True() { var signature = new WalletSignature() { PartsThreshold = 3, PartsTotal = 6 }; var result = signature.IsValid(); Assert.IsTrue(result); }
public void IsValid_NegativeSharesTotal_False() { var expectedMessage = Strings.SharesTotalCannotBeLessThanOne; var signature = new WalletSignature() { PartsThreshold = 3, PartsTotal = -8 }; string message; var result = signature.IsValid(out message); Assert.IsFalse(result); Assert.That(message, Is.EqualTo(expectedMessage)); }
static void GenerateSharedWallet(string thresholdStr, string totalStr, string privateKey) { // Validate and convert values var valid = !string.IsNullOrWhiteSpace(thresholdStr) && !string.IsNullOrWhiteSpace(totalStr) && !string.IsNullOrWhiteSpace(privateKey); int threshold = -1; valid = valid && int.TryParse(thresholdStr, out threshold); int total = -1; valid = valid && int.TryParse(totalStr, out total); var signature = new WalletSignature() { PartsThreshold = threshold, PartsTotal = total }; if (!valid || !signature.IsValid()) { // Show instructions if parametes are invalid. PrintUsage(); } else { // Generate wallet var wallet = new Wallet(signature, privateKey); if (!wallet.IsValid()) { PrintUsage(); return; } // Print parts Console.WriteLine("Parts generated: "); foreach (var part in wallet.Parts) { Console.WriteLine(" - " + part.GetShortNotation()); } } }