package Ġorg . echo . mobile . framework . model . operations Ċ Ċ import Ġcom . google . common . primitives . Unsigned Long Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġorg . echo . mobile . framework . model . Account Ċ import Ġorg . echo . mobile . framework . model . Account Options Ċ import Ġorg . echo . mobile . framework . model . Asset Ċ import Ġorg . echo . mobile . framework . model . Asset Amount Ċ import Ġorg . echo . mobile . framework . model . Base Operation Ċ import Ġorg . echo . mobile . framework . model . edd sa . Ed Authority Ċ import Ġorg . echo . mobile . framework . model . network . Test net Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ Ċ /** Ċ Ġ* ĠTest Ġcases Ġfor Ġ[ Transfer Operation ] Ċ Ġ* Ċ Ġ* Ġ@ author ĠD mit ri y ĠB ush ue v Ċ Ġ*/ Ċ class ĠTransfer Operation Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġbytes Serialization Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoperation Ġ= Ġbuild Operation () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( operation . to Bytes ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġjson Serialization Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoperation Ġ= Ġbuild Operation () ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġoperation . to JsonObject (). as JsonArray ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( json [ 0 ]. as Byte Ġ== ĠOperation Type . TRANSFER _ OPERATION . ordinal . to Byte ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġtransfer Object Ġ= Ġjson [ 1 ]. as JsonObject ĊĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( transfer Object . get ( Base Operation . KEY _ F EE )) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( transfer Object . get ( Transfer Operation . KEY _ FROM )) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( transfer Object . get ( Transfer Operation . KEY _ TO )) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( transfer Object . get ( Transfer Operation . KEY _ AMOUNT )) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( transfer Object . get ( Transfer Operation . KEY _ EXTENSION S )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġjson Deserialization Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġ""" |{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " fee ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " amount ": Ġ 2 6 4 1 7 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ" asset _ id ": Ġ" 1 . 3 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| }, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " from ": Ġ" 1 . 2 . 2 3 2 1 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " to ": Ġ" 1 . 2 . 2 3 2 1 6 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " amount ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " amount ": Ġ 1 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " asset _ id ": Ġ" 1 . 3 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| }, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| " extensions ": Ġ[] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= Ġconfigure Gson () ĊĊĠĠĠĠĠĠĠ Ġval Ġtransfer Ġ= Ġgson . fromJson < Transfer Operation >( json , ĠTransfer Operation :: class . java ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( transfer . type Ġ== ĠOperation Type . TRANSFER _ OPERATION ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( transfer . fee . amount Ġ== ĠUnsigned Long . valueOf ( 2 6 4 1 7 4 )) ĊĠĠĠĠĠĠĠ ĠassertTrue ( transfer . from ?. getObject Id () Ġ== Ġ" 1 . 2 . 2 3 2 1 5 ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( transfer . to ?. getObject Id () Ġ== Ġ" 1 . 2 . 2 3 2 1 6 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Gson () Ġ= ĠGson Builder (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġregister Type Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTransfer Operation :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTransfer Operation . Transfer Deserializer () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġregister Type Adapter ( Asset Amount :: class . java , ĠAsset Amount . Deserializer ()) ĊĠĠĠĠĠĠĠ Ġregister Type Adapter ( Ed Authority :: class . java , ĠEd Authority . Deserializer ()) ĊĠĠĠĠĠĠĠ Ġregister Type Adapter ( Account :: class . java , ĠAccount . Deserializer ()) ĊĠĠĠĠĠĠĠ Ġregister Type Adapter ( Account Options :: class . java , ĠAccount Options . Deserializer ( Test net ())) ĊĠĠĠ Ġ}. create () ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Operation (): ĠTransfer Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfee Ġ= ĠAsset Amount ( Unsigned Long . ONE ) ĊĠĠĠĠĠĠĠ Ġval Ġfrom Account Ġ= ĠAccount (" 1 . 2 . 2 3 2 1 5 ") ĊĠĠĠĠĠĠĠ Ġval Ġto Account Ġ= ĠAccount (" 1 . 2 . 2 3 2 1 6 ") ĊĠĠĠĠĠĠĠ Ġval Ġamount Ġ= ĠAsset Amount ( Unsigned Long . valueOf ( 1 0 0 0 0 ), ĠAsset (" 1 . 3 . 0 ")) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠTransfer Operation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set From ( from Account ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set To ( to Account ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Fee ( fee ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Amount ( amount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ Ċ }