mirror of
https://github.com/XRPLF/clio.git
synced 2025-11-20 03:35:55 +00:00
Implement snapshot import cmd `clio_snapshot --server --grpc_server 0.0.0.0:12345 --path <snapshot_path>` Implement snapshot range cmd `./clio_snapshot --range --path <snapshot_path>` Add LedgerHouses: It is responsible for reading/writing snapshot data Server: Start grpc server and ws server
89 lines
2.2 KiB
Go
89 lines
2.2 KiB
Go
package server
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"xrplf/clio/clio_snapshot/internal/ledgers"
|
|
pb "xrplf/clio/clio_snapshot/org/xrpl/rpc/v1"
|
|
)
|
|
|
|
func TestUnavaibleMethods(t *testing.T) {
|
|
srv := newServer("testdata")
|
|
|
|
req := &pb.GetLedgerDiffRequest{}
|
|
_, err := srv.GetLedgerDiff(context.Background(), req)
|
|
|
|
assert.Error(t, err)
|
|
assert.Equal(t, err.Error(), "GetLedgerDiff not supported")
|
|
|
|
req2 := &pb.GetLedgerEntryRequest{}
|
|
_, err = srv.GetLedgerEntry(context.Background(), req2)
|
|
|
|
assert.Error(t, err)
|
|
assert.Equal(t, err.Error(), "GetLedgerEntry not supported")
|
|
}
|
|
|
|
func TestWhenPathIsInvalid(t *testing.T) {
|
|
srv := newServer("testdata")
|
|
|
|
req := &pb.GetLedgerRequest{
|
|
Ledger: &pb.LedgerSpecifier{
|
|
Ledger: &pb.LedgerSpecifier_Sequence{
|
|
Sequence: 2,
|
|
},
|
|
},
|
|
}
|
|
|
|
_, err := srv.GetLedger(context.Background(), req)
|
|
|
|
assert.Error(t, err)
|
|
assert.Equal(t, err.Error(), "open testdata/ledger_diff_0/2.dat: no such file or directory")
|
|
|
|
req2 := &pb.GetLedgerDataRequest{
|
|
Ledger: &pb.LedgerSpecifier{
|
|
Ledger: &pb.LedgerSpecifier_Sequence{
|
|
Sequence: 2,
|
|
},
|
|
},
|
|
}
|
|
_, err = srv.GetLedgerData(context.Background(), req2)
|
|
assert.Error(t, err)
|
|
assert.Equal(t, err.Error(), "open testdata/ledger_data_2/marker_0000000000000000000000000000000000000000000000000000000000000000/0000000000000000000000000000000000000000000000000000000000000000.dat: no such file or directory")
|
|
}
|
|
|
|
func TestWhenPathIsValid(t *testing.T) {
|
|
srv := newServer("testdata")
|
|
ledger := ledgers.NewLedgersHouse("testdata")
|
|
defer os.RemoveAll("testdata")
|
|
|
|
marker := [32]byte{}
|
|
ledger.WriteLedgerData(1, marker[:], &pb.GetLedgerDataResponse{})
|
|
ledger.WriteLedgerDeltaData(1, &pb.GetLedgerResponse{})
|
|
|
|
req := &pb.GetLedgerRequest{
|
|
Ledger: &pb.LedgerSpecifier{
|
|
Ledger: &pb.LedgerSpecifier_Sequence{
|
|
Sequence: 1,
|
|
},
|
|
},
|
|
}
|
|
res, err := srv.GetLedger(context.Background(), req)
|
|
assert.NoError(t, err)
|
|
assert.NotNil(t, res)
|
|
|
|
req2 := &pb.GetLedgerDataRequest{
|
|
Ledger: &pb.LedgerSpecifier{
|
|
Ledger: &pb.LedgerSpecifier_Sequence{
|
|
Sequence: 1,
|
|
},
|
|
},
|
|
}
|
|
res2, err := srv.GetLedgerData(context.Background(), req2)
|
|
assert.NoError(t, err)
|
|
assert.NotNil(t, res2)
|
|
}
|