public void Run_WrongSigsTest() { MockOpData data = new MockOpData(FuncCallName.Pop, FuncCallName.PopIndex, FuncCallName.PopCount, FuncCallName.PopCount, FuncCallName.Pop, FuncCallName.PushBool) { _itemCount = 8, _opCountToReturn = 5, popData = new byte[][] { OpTestCaseHelper.b7, OpTestCaseHelper.num3 }, popIndexData = new Dictionary <int, byte[]> { { 3, OpTestCaseHelper.num2 } }, popCountData = new byte[][][] { new byte[][] { KeyHelper.Pub1CompBytes, KeyHelper.Pub2CompBytes, KeyHelper.Pub3CompBytes, }, new byte[][] { Helper.ShortSig1Bytes, Helper.ShortSig2Bytes, } }, expectedSigs = new byte[][] { Helper.ShortSig1Bytes, Helper.ShortSig2Bytes }, expectedPubkeys = new byte[][] { KeyHelper.Pub1CompBytes, KeyHelper.Pub2CompBytes, KeyHelper.Pub3CompBytes }, expectedMultiSigGarbage = OpTestCaseHelper.b7, sigVerificationSuccess = false, pushBool = false }; OpTestCaseHelper.RunTest <CheckMultiSigOp>(data, OP.CheckMultiSig); Assert.Equal(8, data.OpCount); }
public void Run_WrongSigsTest() { MockOpData data = new MockOpData(FuncCallName.Pop, FuncCallName.PopIndex, FuncCallName.PopCount, FuncCallName.PopCount, FuncCallName.Pop) { _itemCount = 8, _opCountToReturn = 0, popData = new byte[][] { OpTestCaseHelper.b7, OpTestCaseHelper.num3 }, popIndexData = new Dictionary <int, byte[]> { { 3, OpTestCaseHelper.num2 } }, popCountData = new byte[][][] { new byte[][] { KeyHelper.Pub1CompBytes, KeyHelper.Pub2CompBytes, KeyHelper.Pub3CompBytes }, new byte[][] { Helper.ShortSig1Bytes, Helper.ShortSig2Bytes } }, expectedSigs = new byte[][] { Helper.ShortSig1Bytes, Helper.ShortSig2Bytes }, expectedPubkeys = new byte[][] { KeyHelper.Pub1CompBytes, KeyHelper.Pub2CompBytes, KeyHelper.Pub3CompBytes }, expectedMultiSigGarbage = OpTestCaseHelper.b7, sigVerificationSuccess = false, }; OpTestCaseHelper.RunFailTest <CheckMultiSigVerifyOp>(data, "Signature verification failed."); }
public void Run_NoBip65Test() { MockOpData data = new MockOpData() { bip65 = false }; OpTestCaseHelper.RunTest <CheckLocktimeVerifyOp>(data, OP.CheckLocktimeVerify); }
public void Run_VerifyFailTest() { MockOpData data = new MockOpData(FuncCallName.Pop) { _itemCount = 1, }; OpTestCaseHelper.RunFailTest <EqualVerifyOp>(data, Err.OpNotEnoughItems); }
public void Run_NoBip112Test() { MockOpData data = new MockOpData() { bip112 = false }; OpTestCaseHelper.RunTest <CheckSequenceVerifyOp>(data, OP.CheckSequenceVerify); }
public void Run_ErrorTest() { MockOpData data = new MockOpData() { _itemCount = 1, }; OpTestCaseHelper.RunFailTest <CheckMultiSigVerifyOp>(data, Err.OpNotEnoughItems); }
public void Sha256Op_FailTest() { MockOpData data = new MockOpData() { _itemCount = 0, }; OpTestCaseHelper.RunFailTest <Sha256Op>(data, Err.OpNotEnoughItems); }
public void Run_FailTest() { MockOpData data = new MockOpData(FuncCallName.Peek) { _itemCount = 0, }; OpTestCaseHelper.RunFailTest <SizeOp>(data, Err.OpNotEnoughItems); }
public void Run_NotEqualVerify_Test(byte[] ba1, byte[] ba2) { MockOpData data = new MockOpData(FuncCallName.Pop, FuncCallName.Pop) { _itemCount = 2, popData = new byte[][] { ba1, ba2 }, }; OpTestCaseHelper.RunFailTest <EqualVerifyOp>(data, "Top two stack items are not equal."); }
public void Run_NotVerifiable_Test(byte[] ba) { MockOpData data = new MockOpData(FuncCallName.Pop) { _itemCount = 1, popData = new byte[][] { ba }, }; OpTestCaseHelper.RunFailTest <VerifyOp>(data, "Top stack item value was 'false'."); }
public void Run_EqualVerify_Test(byte[] ba1, byte[] ba2) { MockOpData data = new MockOpData(FuncCallName.Pop, FuncCallName.Pop) { _itemCount = 2, popData = new byte[][] { ba1, ba2 }, }; OpTestCaseHelper.RunTest <EqualVerifyOp>(data, OP.EqualVerify); }
public void Hash160OpTest() { MockOpData data = new MockOpData(FuncCallName.Pop, FuncCallName.Push) { _itemCount = 1, popData = new byte[][] { message }, pushData = new byte[][] { expHash160 } }; OpTestCaseHelper.RunTest <Hash160Op>(data, OP.HASH160); }
public void Sha256OpTest() { MockOpData data = new MockOpData(FuncCallName.Pop, FuncCallName.Push) { _itemCount = 1, popData = new byte[][] { message }, pushData = new byte[][] { expSha256 } }; OpTestCaseHelper.RunTest <Sha256Op>(data, OP.SHA256); }
public void RipeMd160OpTest() { MockOpData data = new MockOpData(FuncCallName.Pop, FuncCallName.Push) { _itemCount = 1, popData = new byte[][] { message }, pushData = new byte[][] { expRipeMd } }; OpTestCaseHelper.RunTest <RipeMd160Op>(data, OP.RIPEMD160); }
public void Run_Verifiable_Test() { MockOpData data = new MockOpData(FuncCallName.Pop) { _itemCount = 1, // Any value apart from 0 and -0 are considered true popData = new byte[][] { OpTestCaseHelper.b1 }, }; OpTestCaseHelper.RunTest <VerifyOp>(data, OP.VERIFY); }
public void Run_Equal_Test(byte[] ba1, byte[] ba2) { MockOpData data = new MockOpData(FuncCallName.Pop, FuncCallName.Pop, FuncCallName.PushBool) { _itemCount = 2, popData = new byte[][] { ba1, ba2 }, pushBool = true }; OpTestCaseHelper.RunTest <EqualOp>(data, OP.EQUAL); }
public void Run_ErrorTest(FuncCallName[] expFuncCalls, int count, bool strict, byte[][][] expPopData, string expErr) { MockOpData data = new MockOpData(expFuncCalls) { _itemCount = count, popCountData = expPopData, IsStrictDerSig = strict }; OpTestCaseHelper.RunFailTest <CheckSigOp>(data, expErr); }
public void RunTest() { MockOpData data = new MockOpData(FuncCallName.Peek, FuncCallName.Push) { _itemCount = 1, _altItemCount = 0, peekData = new byte[][] { OpTestCaseHelper.b1 }, pushData = new byte[][] { OpTestCaseHelper.num3 }, }; OpTestCaseHelper.RunTest <SizeOp>(data, OP.SIZE); }
public void Run_ItemCountOverflowTest2() { MockOpData data = new MockOpData(FuncCallName.Peek, FuncCallName.Push) { _itemCount = 501, _altItemCount = 500, peekData = new byte[][] { OpTestCaseHelper.b1 }, pushData = new byte[][] { OpTestCaseHelper.num3 }, }; OpTestCaseHelper.RunFailTest <SizeOp>(data, Err.OpStackItemOverflow); }
public void Run_ErrorTest(FuncCallName[] expFuncCalls, int count, bool strict, byte[][][] expPopData, string expErr) { // Note that MockOpData makes sure IOpData.Verify() is _not_ called in any of these cases MockOpData data = new MockOpData(expFuncCalls) { _itemCount = count, popCountData = expPopData, IsStrictDerSig = strict }; OpTestCaseHelper.RunFailTest <CheckSigVerifyOp>(data, expErr); }
public void Run_FailTest(int count, long expSeq, byte[] peekData, string expErr) { MockOpData data = new MockOpData(FuncCallName.Peek) { _itemCount = count, bip112 = true, expectedSequence = expSeq, SequenceVerificationSuccess = false, peekData = new byte[][] { peekData } }; OpTestCaseHelper.RunFailTest <CheckSequenceVerifyOp>(data, expErr); }
public void RunTest() { MockOpData data = new MockOpData(FuncCallName.Peek) { _itemCount = 1, bip65 = true, expectedLocktime = 16, locktimeVerificationSuccess = true, peekData = new byte[][] { OpTestCaseHelper.num16 } }; OpTestCaseHelper.RunTest <CheckLocktimeVerifyOp>(data, OP.CheckLocktimeVerify); }
public void RunTest() { MockOpData data = new MockOpData(FuncCallName.Peek) { _itemCount = 1, bip112 = true, expectedSequence = 17, SequenceVerificationSuccess = true, peekData = new byte[][] { OpTestCaseHelper.num17 } }; OpTestCaseHelper.RunTest <CheckSequenceVerifyOp>(data, OP.CheckSequenceVerify); }
public void Run_WrongSigTest() { MockOpData data = new MockOpData(FuncCallName.PopCount) { _itemCount = 2, expectedSig = Helper.ShortSig1, expectedPubkey = KeyHelper.Pub1, expectedSigBa = Helper.ShortSig1Bytes, sigVerificationSuccess = false, popCountData = new byte[][][] { new byte[][] { Helper.ShortSig1Bytes, KeyHelper.Pub1CompBytes } }, }; OpTestCaseHelper.RunFailTest <CheckSigVerifyOp>(data, "Signature verification failed."); }
public void Run_CorrectSigTest() { MockOpData data = new MockOpData(FuncCallName.PopCount) { _itemCount = 2, expectedSig = Helper.ShortSig1, expectedPubkey = KeyHelper.Pub1, expectedSigBa = Helper.ShortSig1Bytes, sigVerificationSuccess = true, popCountData = new byte[][][] { new byte[][] { Helper.ShortSig1Bytes, KeyHelper.Pub1CompBytes } }, }; OpTestCaseHelper.RunTest <CheckSigVerifyOp>(data, OP.CheckSigVerify); }
public void RunTest(Signature expSig, PublicKey expPub, byte[] expSigBa, bool success, bool der, byte[][] pop, bool expBool) { MockOpData data = new MockOpData(FuncCallName.PopCount, FuncCallName.PushBool) { _itemCount = 2, expectedSig = expSig, expectedPubkey = expPub, expectedSigBa = expSigBa, sigVerificationSuccess = success, IsStrictDerSig = der, popCountData = new byte[][][] { pop }, pushBool = expBool }; OpTestCaseHelper.RunTest <CheckSigOp>(data, OP.CheckSig); }