Skip to content

Commit

Permalink
tests
Browse files Browse the repository at this point in the history
  • Loading branch information
CreatureDev committed May 15, 2023
1 parent 76e1f44 commit 344df3e
Show file tree
Hide file tree
Showing 7 changed files with 420 additions and 23 deletions.
36 changes: 36 additions & 0 deletions model/client/admin/data/can_delete_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package data

import (
"testing"

"github.com/xyield/xrpl-go/model/client/common"
"github.com/xyield/xrpl-go/test"
)

func TestCanDeleteRequest(t *testing.T) {
s := CanDeleteRequest{
CanDelete: common.CURRENT,
}

j := `{
"can_delete": "current"
}`

if err := test.SerializeAndDeserialize(t, s, j); err != nil {
t.Error(err)
}
}

func TestCanDeleteResponse(t *testing.T) {
s := CanDeleteResponse{
CanDelete: 54321,
}

j := `{
"can_delete": 54321
}`

if err := test.SerializeAndDeserialize(t, s, j); err != nil {
t.Error(err)
}
}
57 changes: 57 additions & 0 deletions model/client/admin/data/crawl_shards_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package data

import (
"testing"

"github.com/xyield/xrpl-go/test"
)

func TestCrawlShardsRequest(t *testing.T) {
s := CrawlShardsRequest{
PublicKey: true,
Limit: 1,
}

j := `{
"public_key": true,
"limit": 1
}`

if err := test.SerializeAndDeserialize(t, s, j); err != nil {
t.Error(err)
}
}

func TestCrawlShardsResponse(t *testing.T) {
s := CrawlShardsResponse{
CompleteShards: "1-2,5,8-9,584,1973,2358",
Peers: []PeerShards{
{
CompleteShards: "1-2,8,47,371,464,554,653,857,1076,1402,1555,1708,1813,1867",
PublicKey: "n9LxFZiySnfDSvfh23N94UxsFkCjWyrchTeKHcYE6tJJQL5iejb2",
},
{
CompleteShards: "8-9,584",
PublicKey: "n9MN5xwYqbrj64rtfZAXQy7Y3sNxXZJeLt7Lj61a9DYEZ4SE2tQQ",
},
},
}

j := `{
"complete_shards": "1-2,5,8-9,584,1973,2358",
"peers": [
{
"complete_shards": "1-2,8,47,371,464,554,653,857,1076,1402,1555,1708,1813,1867",
"public_key": "n9LxFZiySnfDSvfh23N94UxsFkCjWyrchTeKHcYE6tJJQL5iejb2"
},
{
"complete_shards": "8-9,584",
"public_key": "n9MN5xwYqbrj64rtfZAXQy7Y3sNxXZJeLt7Lj61a9DYEZ4SE2tQQ"
}
]
}`

if err := test.SerializeAndDeserialize(t, s, j); err != nil {
t.Error(err)
}
}
60 changes: 60 additions & 0 deletions model/client/admin/data/download_shard_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package data

import (
"testing"

"github.com/xyield/xrpl-go/test"
)

func TestDownloadShardsRequest(t *testing.T) {
s := DownloadShardRequest{
Shards: []ShardDescriptor{
{
Index: 1,
URL: "https://example.com/1.tar.lz4",
},
{
Index: 2,
URL: "https://example.com/2.tar.lz4",
},
{
Index: 5,
URL: "https://example.com/5.tar.lz4",
},
},
}

j := `{
"shards": [
{
"index": 1,
"url": "https://example.com/1.tar.lz4"
},
{
"index": 2,
"url": "https://example.com/2.tar.lz4"
},
{
"index": 5,
"url": "https://example.com/5.tar.lz4"
}
]
}`

if err := test.SerializeAndDeserialize(t, s, j); err != nil {
t.Error(err)
}
}

func TestDownloadShardsResponse(t *testing.T) {
s := DownloadShardResponse{
Message: "downloading shards 1-3",
}
j := `{
"message": "downloading shards 1-3"
}`

if err := test.SerializeAndDeserialize(t, s, j); err != nil {
t.Error(err)
}
}
41 changes: 41 additions & 0 deletions model/client/admin/data/ledger_cleaner_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package data

import (
"testing"

"github.com/xyield/xrpl-go/test"
)

func TestLedgerCleanerRequest(t *testing.T) {
s := LedgerCleanerRequest{
Ledger: 7,
MaxLedger: 5,
MinLedger: 3,
Stop: true,
}

j := `{
"ledger": 7,
"max_ledger": 5,
"min_ledger": 3,
"stop": true
}`

if err := test.SerializeAndDeserialize(t, s, j); err != nil {
t.Error(err)
}
}

func TestLedgerCleanerResponse(t *testing.T) {
s := LedgerCleanerResponse{
Message: "Cleaner configured",
}

j := `{
"message": "Cleaner configured"
}`

if err := test.SerializeAndDeserialize(t, s, j); err != nil {
t.Error(err)
}
}
66 changes: 58 additions & 8 deletions model/client/admin/data/ledger_request_response.go
Original file line number Diff line number Diff line change
@@ -1,20 +1,70 @@
package data

import (
"encoding/json"

"github.com/xyield/xrpl-go/model/client/common"
"github.com/xyield/xrpl-go/model/client/ledger"
)

type LedgerRequestResponse struct {
ledger.LedgerHeader
LedgerRequest
Acquiring LedgerRequest `json:"acquiring"`
LedgerHeader *ledger.LedgerHeader `json:"ledger,omitempty"`
LedgerRequest *LedgerRequest `json:"-"`
Acquiring *LedgerRequest `json:"acquiring,omitempty"`
}

type LedgerRequest struct {
Hash common.LedgerHash `json:"hash,omitempty"`
HaveHeader bool `json:"have_header"`
HaveState bool `json:"have_state,omitempty"`
HaveTransactions bool `json:"have_transactions,omitempty"`
NeededStateHashes []string `json:"needed_state_hashes,omitempty"`
Hash common.LedgerHash `json:"hash,omitempty"`
HaveHeader bool `json:"have_header"`
HaveState bool `json:"have_state,omitempty"`
HaveTransactions bool `json:"have_transactions,omitempty"`
NeededStateHashes []string `json:"needed_state_hashes,omitempty"`
NeededTransactionHashes []string `json:"needed_transaction_hashes,omitempty"`
Peers int `json:"peers"`
Timeouts int `json:"timeouts"`
}

func (r LedgerRequestResponse) MarshalJSON() ([]byte, error) {
type rHelper LedgerRequestResponse
data := make(map[string]interface{})
h := rHelper(r)

first, err := json.Marshal(h)
if err != nil {
return nil, err
}
err = json.Unmarshal(first, &data)
if err != nil {
return nil, err
}

if r.LedgerRequest != nil {
second, err := json.Marshal(r.LedgerRequest)
if err != nil {
return nil, err
}
err = json.Unmarshal(second, &data)
if err != nil {
return nil, err
}
}

return json.Marshal(data)
}

func (r *LedgerRequestResponse) UnmarshalJSON(data []byte) error {
type rHelper LedgerRequestResponse
h := rHelper(*r)
if err := json.Unmarshal(data, &h); err != nil {
return err
}
r.Acquiring = h.Acquiring
r.LedgerHeader = h.LedgerHeader
if r.Acquiring == nil && r.LedgerHeader == nil {
if err := json.Unmarshal(data, &(r.LedgerRequest)); err != nil {
return err
}
}

return nil
}
Loading

0 comments on commit 344df3e

Please sign in to comment.