bitx-bitcoin-0.2.0.0: test/Network/Bitcoin/BitX/Spec/Specs/PostSpec.hs
{-# LANGUAGE OverloadedStrings, QuasiQuotes, DataKinds #-}
module Network.Bitcoin.BitX.Spec.Specs.PostSpec
(
spec
) where
import Test.Hspec
import Network.Bitcoin.BitX
import Record
spec :: Spec
spec = do
describe "PostEncode test" $ do
it "OrderRequest is post-encoded properly" $ do
postEncode
([record|
{pair = XBTZAR,
type = BID,
volume = 83.02,
price = 15.23 } |] :: OrderRequest)
`shouldBe`
[("pair", "XBTZAR"),
("type", "BID"),
("volume", "83.02"),
("price", "15.23")]
it "Asset is post-encoded properly" $ do
postEncode ZAR
`shouldBe`
[("asset", "ZAR")]
it "NewWithdrawal is post-encoded properly" $ do
postEncode
([record|
{type = ZAR_EFT,
amount = 83.02} |] :: NewWithdrawal)
`shouldBe`
[("type", "ZAR_EFT"),
("amount", "83.02")]
it "BitcoinSendRequest is post-encoded properly" $ do
postEncode
([record|
{amount = 83.02,
currency = XBT,
address = "ahglk98aslfk",
description = Just "Send some coinz to dis ere dude.",
message = Just "Dude, ere'z your coinz."} |] :: BitcoinSendRequest)
`shouldBe`
[("amount", "83.02"),
("currency", "XBT"),
("address", "ahglk98aslfk"),
("description", "Send some coinz to dis ere dude."),
("message", "Dude, ere'z your coinz.")]
it "QuoteRequest is post-encoded properly" $ do
postEncode
([record|
{type = BUY,
pair = XBTKES,
baseAmount = 566.76} |] :: QuoteRequest)
`shouldBe`
[("type", "BUY"),
("pair", "XBTKES"),
("base_amount", "566.76")]