diff --git a/bchain/coins/bch/bcashrpc_test.go b/bchain/coins/bch/bcashrpc_test.go index 44060fc3..195eabc1 100644 --- a/bchain/coins/bch/bcashrpc_test.go +++ b/bchain/coins/bch/bcashrpc_test.go @@ -11,66 +11,115 @@ import ( "testing" ) -func getRPCClient(cfg json.RawMessage) (bchain.BlockChain, error) { - c, err := NewBCashRPC(cfg, nil) - if err != nil { - return nil, err +func getRPCClient(chain string) func(json.RawMessage) (bchain.BlockChain, error) { + return func(cfg json.RawMessage) (bchain.BlockChain, error) { + c, err := NewBCashRPC(cfg, nil) + if err != nil { + return nil, err + } + cli := c.(*BCashRPC) + cli.Parser, err = NewBCashParser(GetChainParams(chain), cli.ChainConfig) + if err != nil { + return nil, err + } + cli.Mempool = bchain.NewUTXOMempool(cli, cli.ChainConfig.MempoolWorkers, cli.ChainConfig.MempoolSubWorkers) + return cli, nil } - cli := c.(*BCashRPC) - cli.Parser, err = NewBCashParser(GetChainParams("test"), cli.ChainConfig) - if err != nil { - return nil, err - } - cli.Mempool = bchain.NewUTXOMempool(cli, cli.ChainConfig.MempoolWorkers, cli.ChainConfig.MempoolSubWorkers) - return cli, nil } -var rpcTest *rpc.Test +var tests struct { + mainnet *rpc.Test + testnet *rpc.Test +} func TestMain(m *testing.M) { flag.Parse() - t, err := rpc.NewTest("Bcash Testnet", getRPCClient) + + t, err := rpc.NewTest("Bcash", getRPCClient("main")) if err != nil { panic(err) } - rpcTest = t + tests.mainnet = t + + t, err = rpc.NewTest("Bcash Testnet", getRPCClient("test")) + if err != nil { + panic(err) + } + + tests.testnet = t os.Exit(m.Run()) } func TestBCashRPC_GetBlockHash(t *testing.T) { - rpcTest.TestGetBlockHash(t) + tests.mainnet.TestGetBlockHash(t) } func TestBCashRPC_GetBlock(t *testing.T) { - rpcTest.TestGetBlock(t) + tests.mainnet.TestGetBlock(t) } func TestBCashRPC_GetTransaction(t *testing.T) { - rpcTest.TestGetTransaction(t) + tests.mainnet.TestGetTransaction(t) } func TestBCashRPC_GetTransactionForMempool(t *testing.T) { - rpcTest.TestGetTransactionForMempool(t) + tests.mainnet.TestGetTransactionForMempool(t) } func TestBCashRPC_MempoolSync(t *testing.T) { - rpcTest.TestMempoolSync(t) + tests.mainnet.TestMempoolSync(t) } func TestBCashRPC_GetMempoolEntry(t *testing.T) { - rpcTest.TestGetMempoolEntry(t) + tests.mainnet.TestGetMempoolEntry(t) } func TestBCashRPC_SendRawTransaction(t *testing.T) { - rpcTest.TestSendRawTransaction(t) + tests.mainnet.TestSendRawTransaction(t) } func TestBCashRPC_EstimateSmartFee(t *testing.T) { - rpcTest.TestEstimateSmartFee(t) + tests.mainnet.TestEstimateSmartFee(t) } func TestBCashRPC_EstimateFee(t *testing.T) { - rpcTest.TestEstimateFee(t) + tests.mainnet.TestEstimateFee(t) +} + +func TestBCashTestnetRPC_GetBlockHash(t *testing.T) { + tests.testnet.TestGetBlockHash(t) +} + +func TestBCashTestnetRPC_GetBlock(t *testing.T) { + tests.testnet.TestGetBlock(t) +} + +func TestBCashTestnetRPC_GetTransaction(t *testing.T) { + tests.testnet.TestGetTransaction(t) +} + +func TestBCashTestnetRPC_GetTransactionForMempool(t *testing.T) { + tests.testnet.TestGetTransactionForMempool(t) +} + +func TestBCashTestnetRPC_MempoolSync(t *testing.T) { + tests.testnet.TestMempoolSync(t) +} + +func TestBCashTestnetRPC_GetMempoolEntry(t *testing.T) { + tests.testnet.TestGetMempoolEntry(t) +} + +func TestBCashTestnetRPC_SendRawTransaction(t *testing.T) { + tests.testnet.TestSendRawTransaction(t) +} + +func TestBCashTestnetRPC_EstimateSmartFee(t *testing.T) { + tests.testnet.TestEstimateSmartFee(t) +} + +func TestBCashTestnetRPC_EstimateFee(t *testing.T) { + tests.testnet.TestEstimateFee(t) } diff --git a/bchain/tests/rpc/testdata/Bcash.json b/bchain/tests/rpc/testdata/Bcash.json new file mode 100644 index 00000000..3d6f3b8f --- /dev/null +++ b/bchain/tests/rpc/testdata/Bcash.json @@ -0,0 +1,75 @@ +{ + "blockHeight": 179921, + "blockHash": "00000000000004e221e0d2adf41b5018cf75395cc83ff9ff70aab0569d21f9dc", + "blockTxs": [ + "46655a2258c204e5948245c248e1524222c1f22a9ca7c02de686c6b83f55f55e", + "d59084c6ab21033b29df358e1b23ecd1617d48ffbbb63ba567c769f9d48a2842", + "16296fd663e1bd0a9566534678cc64d6250222a3f03b8a6dbdc0b011003b1f2a", + "e6bcc688c5ba13f2ab9d6fdc39fe6dcdc94dc876d51dfbb1108f5252c515b26c", + "aaff4792985d8825f7365dea1f026aa4ec57d93af47da67b5c6839efe6c098d2", + "61f52169796a2490cf76cc2d68f6ca8d48971ead87b8815307ef53c608cca318", + "995c1ed442f0777adb652b36d1c5038c85663f3e3b6d0e26c819b21d710fadda", + "2eceaa18d1d1529cbbd385df69dbfd684977de4c545e905974afc35afe1fd358", + "c6f3a4a4bed847de0fee0118b43d3854e2b65f20d2319e084fbf448d4bd85c75", + "933cba6c287bdfaa0c7f4ec5f8f35ea51b59df1d539d0a32a28dcc99dce5b721", + "2373109ea6025b0b237aea1193c097cd1197e59e465382105f4d88a8d6ac0152", + "55117cf6c5f384f87cef2b789f36ff6d7b4f7ccbacf84834e1e09227fdce5ac9", + "c2348e1df31f12a61c8fc94542a43dc8feba3e215d01b5dd12251b68f918ceb2", + "01ab8e4d2324c3e466ee4c29863b34967791217aea13c0a12499a4362cd1af18", + "480603369259ea683b53369e9b8faf71f3f0b7de52e3bc6b67702f88a3a8bbf1", + "31c673e559d4b41c617fc197f0d60b6183a30e21d356a5a18ebc78086a32d69c", + "3ef0af7cc977e936eb43caeb1fb029660f3798fffc416695f9af4d7d9cbf9d1a", + "38ed7b5659ead06eeed927f8519e758b55caf3bedcd830f15f6d07166d624f0f", + "5f3d9ea5da6ee49d948d565e64a4d3c49f435b77f8ff10fe74e3536dff0079ea", + "15659d35fafb656804c1e92ff6593339b3103b02c55d8f9b2e6df08cbf150877", + "055254b83fb49387de92905b44da7c680758dd0da8ed5bcd8ee2297175089984", + "5530c68b861f6c202b3a3627b0639f199d92fcc0f6bc8b203ccc14a3e1a1aacd", + "971d2d9537dbc4a76c4026e5591b02b4f297208cbb38de4444da0dffc68273d4", + "5980150c623b9b231507ae0988d53a43d3bae00edbad2590cc27ebec05c6d54e", + "dc2a33f6697f72d7f88b20e381a131be25b244d144bdf578c09b902fc892e6b4", + "2858d0461ba9790c0e4d67e1b235cb9dcf0a06ac470db967f00d8783a141756b", + "2e5d7c5e86b0785d36bed7cae59debdd106372b10cc69243d8deb1cf1b902295", + "43cc4cc98fa121b4d0d9d82233322dd4d3b848c59c891438370b42b170ccea1e", + "3a71dea98514852654b4b6577178afeb836f995f07f2e0a82b6d775b31ff5549", + "198cedc3489dc531fced23477aec5eb5ca230213269a53fea4450e7a4574e773", + "4bd239288219fec9f8fdb0904e757eb4e338c8f04a4cf5302526a4f2a40aab40", + "4bfd6a3da24adf1f0569a89879110feefff35d8a01c8d3f6fddb58d44c740163", + "8e507a4edbeae5fe845b22d42b740186ff40d9152dc1483a8e9d13a7206830f9", + "75c0a8f6bdaf92ae0618e99e934f174a1b9984346ebd10b690767f1911df58fb" + ], + "txDetails": { + "61f52169796a2490cf76cc2d68f6ca8d48971ead87b8815307ef53c608cca318": { + "hex": "01000000013a5447f0e0aa71944dac8c5c9f104491a6a1454635821530cfdf11e41cf68156090000008a47304402206d997d39b79d31acfbb9add1af599cc93cb65264bb0324d56a50ffb443b98fca02203577a3fac4563d163c6a3ebb510ef16e873067b93fe3339eaa55dff60e20bffc014104b55697fa74b02962316e19eeb460eeca08be61e64bbe36c43a2c3429fd9dbd277dff78c8ea85b937d76c5f897f8ac0082fbd2d2b469f2dad8bfe480bae050fc9ffffffff02d69ce702000000001976a914b8605be5c0157121a7e5d787e2b2a1addd7a0ead88ac80841e00000000001976a91414d07495bc247fff4db76d3ed6b27b769e0006af88ac00000000", + "txid": "61f52169796a2490cf76cc2d68f6ca8d48971ead87b8815307ef53c608cca318", + "blocktime":1336884140, + "time":1336884140, + "locktime": 0, + "vin": [ + { + "txid": "5681f61ce411dfcf301582354645a1a69144109f5c8cac4d9471aae0f047543a", + "vout": 9, + "sequence": 4294967295, + "scriptSig": { + "hex": "47304402206d997d39b79d31acfbb9add1af599cc93cb65264bb0324d56a50ffb443b98fca02203577a3fac4563d163c6a3ebb510ef16e873067b93fe3339eaa55dff60e20bffc014104b55697fa74b02962316e19eeb460eeca08be61e64bbe36c43a2c3429fd9dbd277dff78c8ea85b937d76c5f897f8ac0082fbd2d2b469f2dad8bfe480bae050fc9" + } + } + ], + "vout": [ + { + "value": 0.48733398, + "n": 0, + "scriptPubKey": { + "hex": "76a914b8605be5c0157121a7e5d787e2b2a1addd7a0ead88ac" + } + }, + { + "value": 0.02000000, + "n": 1, + "scriptPubKey": { + "hex": "76a91414d07495bc247fff4db76d3ed6b27b769e0006af88ac" + } + } + ] + } + } +}