args_test.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693
  1. package rpc
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "math/big"
  6. "testing"
  7. )
  8. func TestSha3(t *testing.T) {
  9. input := `["0x68656c6c6f20776f726c64"]`
  10. expected := "0x68656c6c6f20776f726c64"
  11. args := new(Sha3Args)
  12. json.Unmarshal([]byte(input), &args)
  13. if args.Data != expected {
  14. t.Error("got %s expected %s", input, expected)
  15. }
  16. }
  17. func TestGetBalanceArgs(t *testing.T) {
  18. input := `["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "0x1f"]`
  19. expected := new(GetBalanceArgs)
  20. expected.Address = "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
  21. expected.BlockNumber = 31
  22. args := new(GetBalanceArgs)
  23. if err := json.Unmarshal([]byte(input), &args); err != nil {
  24. t.Error(err)
  25. }
  26. if err := args.requirements(); err != nil {
  27. t.Error(err)
  28. }
  29. if args.Address != expected.Address {
  30. t.Errorf("Address should be %v but is %v", expected.Address, args.Address)
  31. }
  32. if args.BlockNumber != expected.BlockNumber {
  33. t.Errorf("BlockNumber should be %v but is %v", expected.BlockNumber, args.BlockNumber)
  34. }
  35. }
  36. func TestGetBalanceArgsLatest(t *testing.T) {
  37. input := `["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"]`
  38. expected := new(GetBalanceArgs)
  39. expected.Address = "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
  40. expected.BlockNumber = -1
  41. args := new(GetBalanceArgs)
  42. if err := json.Unmarshal([]byte(input), &args); err != nil {
  43. t.Error(err)
  44. }
  45. if err := args.requirements(); err != nil {
  46. t.Error(err)
  47. }
  48. if args.Address != expected.Address {
  49. t.Errorf("Address should be %v but is %v", expected.Address, args.Address)
  50. }
  51. if args.BlockNumber != expected.BlockNumber {
  52. t.Errorf("BlockNumber should be %v but is %v", expected.BlockNumber, args.BlockNumber)
  53. }
  54. }
  55. func TestGetBalanceEmptyArgs(t *testing.T) {
  56. input := `[]`
  57. args := new(GetBalanceArgs)
  58. err := json.Unmarshal([]byte(input), &args)
  59. if err == nil {
  60. t.Error("Expected error but didn't get one")
  61. }
  62. }
  63. func TestGetBlockByHashArgs(t *testing.T) {
  64. input := `["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", true]`
  65. expected := new(GetBlockByHashArgs)
  66. expected.BlockHash = "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
  67. expected.Transactions = true
  68. args := new(GetBlockByHashArgs)
  69. if err := json.Unmarshal([]byte(input), &args); err != nil {
  70. t.Error(err)
  71. }
  72. if args.BlockHash != expected.BlockHash {
  73. t.Errorf("BlockHash should be %v but is %v", expected.BlockHash, args.BlockHash)
  74. }
  75. if args.Transactions != expected.Transactions {
  76. t.Errorf("Transactions should be %v but is %v", expected.Transactions, args.Transactions)
  77. }
  78. }
  79. func TestGetBlockByHashEmpty(t *testing.T) {
  80. input := `[]`
  81. args := new(GetBlockByHashArgs)
  82. err := json.Unmarshal([]byte(input), &args)
  83. if err == nil {
  84. t.Error("Expected error but didn't get one")
  85. }
  86. }
  87. func TestGetBlockByNumberArgs(t *testing.T) {
  88. input := `["0x1b4", false]`
  89. expected := new(GetBlockByNumberArgs)
  90. expected.BlockNumber = 436
  91. expected.Transactions = false
  92. args := new(GetBlockByNumberArgs)
  93. if err := json.Unmarshal([]byte(input), &args); err != nil {
  94. t.Error(err)
  95. }
  96. if args.BlockNumber != expected.BlockNumber {
  97. t.Errorf("BlockHash should be %v but is %v", expected.BlockNumber, args.BlockNumber)
  98. }
  99. if args.Transactions != expected.Transactions {
  100. t.Errorf("Transactions should be %v but is %v", expected.Transactions, args.Transactions)
  101. }
  102. }
  103. func TestGetBlockByNumberEmpty(t *testing.T) {
  104. input := `[]`
  105. args := new(GetBlockByNumberArgs)
  106. err := json.Unmarshal([]byte(input), &args)
  107. if err == nil {
  108. t.Error("Expected error but didn't get one")
  109. }
  110. }
  111. func TestNewTxArgs(t *testing.T) {
  112. input := `[{"from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
  113. "to": "0xd46e8dd67c5d32be8058bb8eb970870f072445675",
  114. "gas": "0x76c0",
  115. "gasPrice": "0x9184e72a000",
  116. "value": "0x9184e72a000",
  117. "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"},
  118. "0x10"]`
  119. expected := new(NewTxArgs)
  120. expected.From = "0xb60e8dd61c5d32be8058bb8eb970870f07233155"
  121. expected.To = "0xd46e8dd67c5d32be8058bb8eb970870f072445675"
  122. expected.Gas = big.NewInt(30400)
  123. expected.GasPrice = big.NewInt(10000000000000)
  124. expected.Value = big.NewInt(10000000000000)
  125. expected.Data = "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
  126. expected.BlockNumber = big.NewInt(16).Int64()
  127. args := new(NewTxArgs)
  128. if err := json.Unmarshal([]byte(input), &args); err != nil {
  129. t.Error(err)
  130. }
  131. if expected.From != args.From {
  132. t.Errorf("From shoud be %#v but is %#v", expected.From, args.From)
  133. }
  134. if expected.To != args.To {
  135. t.Errorf("To shoud be %#v but is %#v", expected.To, args.To)
  136. }
  137. if bytes.Compare(expected.Gas.Bytes(), args.Gas.Bytes()) != 0 {
  138. t.Errorf("Gas shoud be %#v but is %#v", expected.Gas.Bytes(), args.Gas.Bytes())
  139. }
  140. if bytes.Compare(expected.GasPrice.Bytes(), args.GasPrice.Bytes()) != 0 {
  141. t.Errorf("GasPrice shoud be %#v but is %#v", expected.GasPrice, args.GasPrice)
  142. }
  143. if bytes.Compare(expected.Value.Bytes(), args.Value.Bytes()) != 0 {
  144. t.Errorf("Value shoud be %#v but is %#v", expected.Value, args.Value)
  145. }
  146. if expected.Data != args.Data {
  147. t.Errorf("Data shoud be %#v but is %#v", expected.Data, args.Data)
  148. }
  149. if expected.BlockNumber != args.BlockNumber {
  150. t.Errorf("BlockNumber shoud be %#v but is %#v", expected.BlockNumber, args.BlockNumber)
  151. }
  152. }
  153. func TestNewTxArgsBlockInt(t *testing.T) {
  154. input := `[{"from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155"}, 5]`
  155. expected := new(NewTxArgs)
  156. expected.From = "0xb60e8dd61c5d32be8058bb8eb970870f07233155"
  157. expected.BlockNumber = big.NewInt(5).Int64()
  158. args := new(NewTxArgs)
  159. if err := json.Unmarshal([]byte(input), &args); err != nil {
  160. t.Error(err)
  161. }
  162. if expected.From != args.From {
  163. t.Errorf("From shoud be %#v but is %#v", expected.From, args.From)
  164. }
  165. if expected.BlockNumber != args.BlockNumber {
  166. t.Errorf("BlockNumber shoud be %#v but is %#v", expected.BlockNumber, args.BlockNumber)
  167. }
  168. }
  169. func TestNewTxArgsEmpty(t *testing.T) {
  170. input := `[]`
  171. args := new(NewTxArgs)
  172. err := json.Unmarshal([]byte(input), &args)
  173. if err == nil {
  174. t.Error("Expected error but didn't get one")
  175. }
  176. }
  177. func TestNewTxArgsReqs(t *testing.T) {
  178. args := new(NewTxArgs)
  179. args.From = "0xb60e8dd61c5d32be8058bb8eb970870f07233155"
  180. err := args.requirements()
  181. switch err.(type) {
  182. case nil:
  183. break
  184. default:
  185. t.Errorf("Get %T", err)
  186. }
  187. }
  188. func TestNewTxArgsReqsFromBlank(t *testing.T) {
  189. args := new(NewTxArgs)
  190. args.From = ""
  191. err := args.requirements()
  192. switch err.(type) {
  193. case nil:
  194. t.Error("Expected error but didn't get one")
  195. case *ValidationError:
  196. break
  197. default:
  198. t.Error("Wrong type of error")
  199. }
  200. }
  201. func TestGetStorageArgs(t *testing.T) {
  202. input := `["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"]`
  203. expected := new(GetStorageArgs)
  204. expected.Address = "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
  205. expected.BlockNumber = -1
  206. args := new(GetStorageArgs)
  207. if err := json.Unmarshal([]byte(input), &args); err != nil {
  208. t.Error(err)
  209. }
  210. if err := args.requirements(); err != nil {
  211. t.Error(err)
  212. }
  213. if expected.Address != args.Address {
  214. t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
  215. }
  216. if expected.BlockNumber != args.BlockNumber {
  217. t.Errorf("BlockNumber shoud be %#v but is %#v", expected.BlockNumber, args.BlockNumber)
  218. }
  219. }
  220. func TestGetStorageEmptyArgs(t *testing.T) {
  221. input := `[]`
  222. args := new(GetStorageArgs)
  223. err := json.Unmarshal([]byte(input), &args)
  224. if err == nil {
  225. t.Error("Expected error but didn't get one")
  226. }
  227. }
  228. func TestGetStorageAtArgs(t *testing.T) {
  229. input := `["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "0x0", "0x2"]`
  230. expected := new(GetStorageAtArgs)
  231. expected.Address = "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
  232. expected.Key = "0x0"
  233. expected.BlockNumber = 2
  234. args := new(GetStorageAtArgs)
  235. if err := json.Unmarshal([]byte(input), &args); err != nil {
  236. t.Error(err)
  237. }
  238. if err := args.requirements(); err != nil {
  239. t.Error(err)
  240. }
  241. if expected.Address != args.Address {
  242. t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
  243. }
  244. if expected.Key != args.Key {
  245. t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
  246. }
  247. if expected.BlockNumber != args.BlockNumber {
  248. t.Errorf("BlockNumber shoud be %#v but is %#v", expected.BlockNumber, args.BlockNumber)
  249. }
  250. }
  251. func TestGetStorageAtEmptyArgs(t *testing.T) {
  252. input := `[]`
  253. args := new(GetStorageAtArgs)
  254. err := json.Unmarshal([]byte(input), &args)
  255. if err == nil {
  256. t.Error("Expected error but didn't get one")
  257. }
  258. }
  259. func TestGetTxCountArgs(t *testing.T) {
  260. input := `["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"]`
  261. expected := new(GetTxCountArgs)
  262. expected.Address = "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
  263. expected.BlockNumber = -1
  264. args := new(GetTxCountArgs)
  265. if err := json.Unmarshal([]byte(input), &args); err != nil {
  266. t.Error(err)
  267. }
  268. if err := args.requirements(); err != nil {
  269. t.Error(err)
  270. }
  271. if expected.Address != args.Address {
  272. t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
  273. }
  274. if expected.BlockNumber != args.BlockNumber {
  275. t.Errorf("BlockNumber shoud be %#v but is %#v", expected.BlockNumber, args.BlockNumber)
  276. }
  277. }
  278. func TestGetTxCountEmptyArgs(t *testing.T) {
  279. input := `[]`
  280. args := new(GetTxCountArgs)
  281. err := json.Unmarshal([]byte(input), &args)
  282. if err == nil {
  283. t.Error("Expected error but didn't get one")
  284. }
  285. }
  286. func TestGetDataArgs(t *testing.T) {
  287. input := `["0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8", "latest"]`
  288. expected := new(GetDataArgs)
  289. expected.Address = "0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8"
  290. expected.BlockNumber = -1
  291. args := new(GetDataArgs)
  292. if err := json.Unmarshal([]byte(input), &args); err != nil {
  293. t.Error(err)
  294. }
  295. if err := args.requirements(); err != nil {
  296. t.Error(err)
  297. }
  298. if expected.Address != args.Address {
  299. t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
  300. }
  301. if expected.BlockNumber != args.BlockNumber {
  302. t.Errorf("BlockNumber shoud be %#v but is %#v", expected.BlockNumber, args.BlockNumber)
  303. }
  304. }
  305. func TestGetDataEmptyArgs(t *testing.T) {
  306. input := `[]`
  307. args := new(GetDataArgs)
  308. err := json.Unmarshal([]byte(input), &args)
  309. if err == nil {
  310. t.Error("Expected error but didn't get one")
  311. }
  312. }
  313. func TestFilterOptions(t *testing.T) {
  314. input := `[{
  315. "fromBlock": "0x1",
  316. "toBlock": "0x2",
  317. "limit": "0x3",
  318. "offset": "0x0",
  319. "address": "0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8",
  320. "topics": ["0x12341234"]}]`
  321. expected := new(FilterOptions)
  322. expected.Earliest = 1
  323. expected.Latest = 2
  324. expected.Max = 3
  325. expected.Skip = 0
  326. expected.Address = "0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8"
  327. // expected.Topics = []string{"0x12341234"}
  328. args := new(FilterOptions)
  329. if err := json.Unmarshal([]byte(input), &args); err != nil {
  330. t.Error(err)
  331. }
  332. if expected.Earliest != args.Earliest {
  333. t.Errorf("Earliest shoud be %#v but is %#v", expected.Earliest, args.Earliest)
  334. }
  335. if expected.Latest != args.Latest {
  336. t.Errorf("Latest shoud be %#v but is %#v", expected.Latest, args.Latest)
  337. }
  338. if expected.Max != args.Max {
  339. t.Errorf("Max shoud be %#v but is %#v", expected.Max, args.Max)
  340. }
  341. if expected.Skip != args.Skip {
  342. t.Errorf("Skip shoud be %#v but is %#v", expected.Skip, args.Skip)
  343. }
  344. if expected.Address != args.Address {
  345. t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
  346. }
  347. // if expected.Topics != args.Topics {
  348. // t.Errorf("Topic shoud be %#v but is %#v", expected.Topic, args.Topic)
  349. // }
  350. }
  351. func TestFilterOptionsWords(t *testing.T) {
  352. input := `[{
  353. "fromBlock": "latest",
  354. "toBlock": "pending"
  355. }]`
  356. expected := new(FilterOptions)
  357. expected.Earliest = 0
  358. expected.Latest = -1
  359. args := new(FilterOptions)
  360. if err := json.Unmarshal([]byte(input), &args); err != nil {
  361. t.Error(err)
  362. }
  363. if expected.Earliest != args.Earliest {
  364. t.Errorf("Earliest shoud be %#v but is %#v", expected.Earliest, args.Earliest)
  365. }
  366. if expected.Latest != args.Latest {
  367. t.Errorf("Latest shoud be %#v but is %#v", expected.Latest, args.Latest)
  368. }
  369. }
  370. func TestFilterOptionsNums(t *testing.T) {
  371. input := `[{
  372. "fromBlock": 2,
  373. "toBlock": 3
  374. }]`
  375. args := new(FilterOptions)
  376. err := json.Unmarshal([]byte(input), &args)
  377. switch err.(type) {
  378. case *DecodeParamError:
  379. break
  380. default:
  381. t.Errorf("Should have *DecodeParamError but instead have %T", err)
  382. }
  383. }
  384. func TestFilterOptionsEmptyArgs(t *testing.T) {
  385. input := `[]`
  386. args := new(FilterOptions)
  387. err := json.Unmarshal([]byte(input), &args)
  388. if err == nil {
  389. t.Error("Expected error but didn't get one")
  390. }
  391. }
  392. func TestDbArgs(t *testing.T) {
  393. input := `["0x74657374","0x6b6579","0x6d79537472696e67"]`
  394. expected := new(DbArgs)
  395. expected.Database = "0x74657374"
  396. expected.Key = "0x6b6579"
  397. expected.Value = "0x6d79537472696e67"
  398. args := new(DbArgs)
  399. if err := json.Unmarshal([]byte(input), &args); err != nil {
  400. t.Error(err)
  401. }
  402. if err := args.requirements(); err != nil {
  403. t.Error(err)
  404. }
  405. if expected.Database != args.Database {
  406. t.Errorf("Database shoud be %#v but is %#v", expected.Database, args.Database)
  407. }
  408. if expected.Key != args.Key {
  409. t.Errorf("Key shoud be %#v but is %#v", expected.Key, args.Key)
  410. }
  411. if expected.Value != args.Value {
  412. t.Errorf("Value shoud be %#v but is %#v", expected.Value, args.Value)
  413. }
  414. }
  415. func TestWhisperMessageArgs(t *testing.T) {
  416. input := `[{"from":"0xc931d93e97ab07fe42d923478ba2465f2",
  417. "topics": ["0x68656c6c6f20776f726c64"],
  418. "payload":"0x68656c6c6f20776f726c64",
  419. "ttl": "0x64",
  420. "priority": "0x64"}]`
  421. expected := new(WhisperMessageArgs)
  422. expected.From = "0xc931d93e97ab07fe42d923478ba2465f2"
  423. expected.To = ""
  424. expected.Payload = "0x68656c6c6f20776f726c64"
  425. expected.Priority = 100
  426. expected.Ttl = 100
  427. expected.Topics = []string{"0x68656c6c6f20776f726c64"}
  428. args := new(WhisperMessageArgs)
  429. if err := json.Unmarshal([]byte(input), &args); err != nil {
  430. t.Error(err)
  431. }
  432. if expected.From != args.From {
  433. t.Errorf("From shoud be %#v but is %#v", expected.From, args.From)
  434. }
  435. if expected.To != args.To {
  436. t.Errorf("To shoud be %#v but is %#v", expected.To, args.To)
  437. }
  438. if expected.Payload != args.Payload {
  439. t.Errorf("Value shoud be %#v but is %#v", expected.Payload, args.Payload)
  440. }
  441. if expected.Ttl != args.Ttl {
  442. t.Errorf("Ttl shoud be %#v but is %#v", expected.Ttl, args.Ttl)
  443. }
  444. if expected.Priority != args.Priority {
  445. t.Errorf("Priority shoud be %#v but is %#v", expected.Priority, args.Priority)
  446. }
  447. // if expected.Topics != args.Topics {
  448. // t.Errorf("Topic shoud be %#v but is %#v", expected.Topic, args.Topic)
  449. // }
  450. }
  451. func TestFilterIdArgs(t *testing.T) {
  452. input := `["0x7"]`
  453. expected := new(FilterIdArgs)
  454. expected.Id = 7
  455. args := new(FilterIdArgs)
  456. if err := json.Unmarshal([]byte(input), &args); err != nil {
  457. t.Error(err)
  458. }
  459. if expected.Id != args.Id {
  460. t.Errorf("Id shoud be %#v but is %#v", expected.Id, args.Id)
  461. }
  462. }
  463. func TestWhsiperFilterArgs(t *testing.T) {
  464. input := `[{"topics": ["0x68656c6c6f20776f726c64"], "to": "0x34ag445g3455b34"}]`
  465. expected := new(WhisperFilterArgs)
  466. expected.From = ""
  467. expected.To = "0x34ag445g3455b34"
  468. expected.Topics = []string{"0x68656c6c6f20776f726c64"}
  469. args := new(WhisperFilterArgs)
  470. if err := json.Unmarshal([]byte(input), &args); err != nil {
  471. t.Error(err)
  472. }
  473. if expected.From != args.From {
  474. t.Errorf("From shoud be %#v but is %#v", expected.From, args.From)
  475. }
  476. if expected.To != args.To {
  477. t.Errorf("To shoud be %#v but is %#v", expected.To, args.To)
  478. }
  479. // if expected.Topics != args.Topics {
  480. // t.Errorf("Topics shoud be %#v but is %#v", expected.Topics, args.Topics)
  481. // }
  482. }
  483. func TestCompileArgs(t *testing.T) {
  484. input := `["contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"]`
  485. expected := new(CompileArgs)
  486. expected.Source = `contract test { function multiply(uint a) returns(uint d) { return a * 7; } }`
  487. args := new(CompileArgs)
  488. if err := json.Unmarshal([]byte(input), &args); err != nil {
  489. t.Error(err)
  490. }
  491. if expected.Source != args.Source {
  492. t.Errorf("Source shoud be %#v but is %#v", expected.Source, args.Source)
  493. }
  494. }
  495. func TestFilterStringArgs(t *testing.T) {
  496. input := `["pending"]`
  497. expected := new(FilterStringArgs)
  498. expected.Word = "pending"
  499. args := new(FilterStringArgs)
  500. if err := json.Unmarshal([]byte(input), &args); err != nil {
  501. t.Error(err)
  502. }
  503. if expected.Word != args.Word {
  504. t.Errorf("Word shoud be %#v but is %#v", expected.Word, args.Word)
  505. }
  506. }
  507. func TestFilterStringEmptyArgs(t *testing.T) {
  508. input := `[]`
  509. args := new(FilterStringArgs)
  510. err := json.Unmarshal([]byte(input), &args)
  511. if err == nil {
  512. t.Error("Expected error but didn't get one")
  513. }
  514. }
  515. func TestWhisperIdentityArgs(t *testing.T) {
  516. input := `["0xc931d93e97ab07fe42d923478ba2465f283"]`
  517. expected := new(WhisperIdentityArgs)
  518. expected.Identity = "0xc931d93e97ab07fe42d923478ba2465f283"
  519. args := new(WhisperIdentityArgs)
  520. if err := json.Unmarshal([]byte(input), &args); err != nil {
  521. t.Error(err)
  522. }
  523. if expected.Identity != args.Identity {
  524. t.Errorf("Identity shoud be %#v but is %#v", expected.Identity, args.Identity)
  525. }
  526. }
  527. func TestBlockNumIndexArgs(t *testing.T) {
  528. input := `["0x29a", "0x0"]`
  529. expected := new(BlockNumIndexArgs)
  530. expected.BlockNumber = 666
  531. expected.Index = 0
  532. args := new(BlockNumIndexArgs)
  533. if err := json.Unmarshal([]byte(input), &args); err != nil {
  534. t.Error(err)
  535. }
  536. if expected.BlockNumber != args.BlockNumber {
  537. t.Errorf("BlockNumber shoud be %#v but is %#v", expected.BlockNumber, args.BlockNumber)
  538. }
  539. if expected.Index != args.Index {
  540. t.Errorf("Index shoud be %#v but is %#v", expected.Index, args.Index)
  541. }
  542. }
  543. func TestHashIndexArgs(t *testing.T) {
  544. input := `["0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", "0x1"]`
  545. expected := new(HashIndexArgs)
  546. expected.Hash = "0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b"
  547. expected.Index = 1
  548. args := new(HashIndexArgs)
  549. if err := json.Unmarshal([]byte(input), &args); err != nil {
  550. t.Error(err)
  551. }
  552. if expected.Hash != args.Hash {
  553. t.Errorf("Hash shoud be %#v but is %#v", expected.Hash, args.Hash)
  554. }
  555. if expected.Index != args.Index {
  556. t.Errorf("Index shoud be %#v but is %#v", expected.Index, args.Index)
  557. }
  558. }