Expose methods required for the stream sync service #147
@ -88,18 +88,14 @@ func TestCreateAccount(t *testing.T) {
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
serverResponse *api.OKResponse
|
||||
serverResponse *models.AccountResult
|
||||
expectedResult resource.Result
|
||||
}{
|
||||
{
|
||||
name: "Test account creation success",
|
||||
serverResponse: &api.OKResponse{
|
||||
Ok: true,
|
||||
Description: "Account creation successed",
|
||||
Result: map[string]any{
|
||||
"trackingId": "1234567890",
|
||||
"publicKey": "0xD3adB33f",
|
||||
},
|
||||
serverResponse: &models.AccountResult{
|
||||
TrackingId: "1234567890",
|
||||
PublicKey: "0xD3adB33f",
|
||||
},
|
||||
expectedResult: resource.Result{
|
||||
FlagSet: []uint32{flag_account_created},
|
||||
@ -119,9 +115,9 @@ func TestCreateAccount(t *testing.T) {
|
||||
flagManager: fm.parser,
|
||||
}
|
||||
|
||||
publicKey := tt.serverResponse.Result["publicKey"].(string)
|
||||
publicKey := tt.serverResponse.PublicKey
|
||||
data := map[common.DataTyp]string{
|
||||
common.DATA_TRACKING_ID: tt.serverResponse.Result["trackingId"].(string),
|
||||
common.DATA_TRACKING_ID: tt.serverResponse.TrackingId,
|
||||
common.DATA_PUBLIC_KEY: publicKey,
|
||||
}
|
||||
|
||||
@ -1055,7 +1051,7 @@ func TestCheckAccountStatus(t *testing.T) {
|
||||
name string
|
||||
input []byte
|
||||
serverResponse *api.OKResponse
|
||||
response *models.TrackStatusResponse
|
||||
response *models.TrackStatusResult
|
||||
expectedResult resource.Result
|
||||
}{
|
||||
{
|
||||
@ -1068,25 +1064,12 @@ func TestCheckAccountStatus(t *testing.T) {
|
||||
"active": true,
|
||||
},
|
||||
},
|
||||
response: &models.TrackStatusResponse{
|
||||
Ok: true,
|
||||
Result: struct {
|
||||
Transaction struct {
|
||||
CreatedAt time.Time "json:\"createdAt\""
|
||||
Status string "json:\"status\""
|
||||
TransferValue json.Number "json:\"transferValue\""
|
||||
TxHash string "json:\"txHash\""
|
||||
TxType string "json:\"txType\""
|
||||
}
|
||||
}{
|
||||
Transaction: models.Transaction{
|
||||
CreatedAt: time.Now(),
|
||||
Status: "SUCCESS",
|
||||
TransferValue: json.Number("0.5"),
|
||||
TxHash: "0x123abc456def",
|
||||
TxType: "transfer",
|
||||
},
|
||||
},
|
||||
response: &models.TrackStatusResult {
|
||||
CreatedAt: time.Now(),
|
||||
Status: "SUCCESS",
|
||||
TransferValue: json.Number("0.5"),
|
||||
TxHash: "0x123abc456def",
|
||||
TxType: "transfer",
|
||||
},
|
||||
expectedResult: resource.Result{
|
||||
FlagSet: []uint32{flag_account_success},
|
||||
@ -1096,25 +1079,12 @@ func TestCheckAccountStatus(t *testing.T) {
|
||||
{
|
||||
name: "Test when the account is not yet on the sarafu network",
|
||||
input: []byte("TrackingId1234"),
|
||||
response: &models.TrackStatusResponse{
|
||||
Ok: true,
|
||||
Result: struct {
|
||||
Transaction struct {
|
||||
CreatedAt time.Time "json:\"createdAt\""
|
||||
Status string "json:\"status\""
|
||||
TransferValue json.Number "json:\"transferValue\""
|
||||
TxHash string "json:\"txHash\""
|
||||
TxType string "json:\"txType\""
|
||||
}
|
||||
}{
|
||||
Transaction: models.Transaction{
|
||||
CreatedAt: time.Now(),
|
||||
Status: "SUCCESS",
|
||||
TransferValue: json.Number("0.5"),
|
||||
TxHash: "0x123abc456def",
|
||||
TxType: "transfer",
|
||||
},
|
||||
},
|
||||
response: &models.TrackStatusResult{
|
||||
CreatedAt: time.Now(),
|
||||
Status: "SUCCESS",
|
||||
TransferValue: json.Number("0.5"),
|
||||
TxHash: "0x123abc456def",
|
||||
TxType: "transfer",
|
||||
},
|
||||
serverResponse: &api.OKResponse{
|
||||
Ok: true,
|
||||
@ -1140,7 +1110,7 @@ func TestCheckAccountStatus(t *testing.T) {
|
||||
flagManager: fm.parser,
|
||||
}
|
||||
|
||||
status := tt.response.Result.Transaction.Status
|
||||
status := tt.response.Status
|
||||
// Define expected interactions with the mock
|
||||
mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_PUBLIC_KEY).Return(tt.input, nil)
|
||||
|
||||
@ -1833,36 +1803,14 @@ func TestFetchCustodialBalances(t *testing.T) {
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
balanceResonse *models.BalanceResponse
|
||||
balanceResponse *models.BalanceResult
|
||||
expectedResult resource.Result
|
||||
}{
|
||||
{
|
||||
name: "Test when fetch custodial balances is not a success",
|
||||
balanceResonse: &models.BalanceResponse{
|
||||
Ok: false,
|
||||
Result: struct {
|
||||
Balance string `json:"balance"`
|
||||
Nonce json.Number `json:"nonce"`
|
||||
}{
|
||||
Balance: "0.003 CELO",
|
||||
Nonce: json.Number("0"),
|
||||
},
|
||||
},
|
||||
expectedResult: resource.Result{
|
||||
FlagSet: []uint32{flag_api_error},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Test when fetch custodial balances is a success",
|
||||
balanceResonse: &models.BalanceResponse{
|
||||
Ok: true,
|
||||
Result: struct {
|
||||
Balance string `json:"balance"`
|
||||
Nonce json.Number `json:"nonce"`
|
||||
}{
|
||||
Balance: "0.003 CELO",
|
||||
Nonce: json.Number("0"),
|
||||
},
|
||||
balanceResponse: &models.BalanceResult{
|
||||
Balance: "0.003 CELO",
|
||||
Nonce: json.Number("0"),
|
||||
},
|
||||
expectedResult: resource.Result{
|
||||
FlagReset: []uint32{flag_api_error},
|
||||
@ -1886,7 +1834,7 @@ func TestFetchCustodialBalances(t *testing.T) {
|
||||
|
||||
// Set up the expected behavior of the mock
|
||||
mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_PUBLIC_KEY).Return([]byte(publicKey), nil)
|
||||
mockCreateAccountService.On("CheckBalance", string(publicKey)).Return(tt.balanceResonse, nil)
|
||||
mockCreateAccountService.On("CheckBalance", string(publicKey)).Return(tt.balanceResponse, nil)
|
||||
|
||||
// Call the method
|
||||
res, _ := h.FetchCustodialBalances(ctx, "fetch_custodial_balances", []byte(""))
|
||||
@ -1918,35 +1866,24 @@ func TestSetDefaultVoucher(t *testing.T) {
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
vouchersResp *models.VoucherHoldingResponse
|
||||
vouchersResp []dataserviceapi.TokenHoldings
|
||||
expectedResult resource.Result
|
||||
}{
|
||||
{
|
||||
name: "Test set default voucher when no active voucher exists",
|
||||
vouchersResp: &models.VoucherHoldingResponse{
|
||||
Ok: true,
|
||||
Description: "Vouchers fetched successfully",
|
||||
Result: models.VoucherResult{
|
||||
Holdings: []dataserviceapi.TokenHoldings{
|
||||
{
|
||||
ContractAddress: "0x123",
|
||||
TokenSymbol: "TOKEN1",
|
||||
TokenDecimals: "18",
|
||||
Balance: "100",
|
||||
},
|
||||
},
|
||||
vouchersResp: []dataserviceapi.TokenHoldings {
|
||||
dataserviceapi.TokenHoldings{
|
||||
ContractAddress: "0x123",
|
||||
TokenSymbol: "TOKEN1",
|
||||
TokenDecimals: "18",
|
||||
Balance: "100",
|
||||
},
|
||||
},
|
||||
expectedResult: resource.Result{},
|
||||
},
|
||||
{
|
||||
name: "Test no vouchers available",
|
||||
vouchersResp: &models.VoucherHoldingResponse{
|
||||
Ok: true,
|
||||
Description: "No vouchers available",
|
||||
Result: models.VoucherResult{
|
||||
Holdings: []dataserviceapi.TokenHoldings{},
|
||||
},
|
||||
vouchersResp: []dataserviceapi.TokenHoldings {
|
||||
},
|
||||
expectedResult: resource.Result{
|
||||
FlagSet: []uint32{flag_no_active_voucher},
|
||||
@ -1970,8 +1907,8 @@ func TestSetDefaultVoucher(t *testing.T) {
|
||||
|
||||
mockAccountService.On("FetchVouchers", string(publicKey)).Return(tt.vouchersResp, nil)
|
||||
|
||||
if len(tt.vouchersResp.Result.Holdings) > 0 {
|
||||
firstVoucher := tt.vouchersResp.Result.Holdings[0]
|
||||
if len(tt.vouchersResp) > 0 {
|
||||
firstVoucher := tt.vouchersResp[0]
|
||||
mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_ACTIVE_SYM, []byte(firstVoucher.TokenSymbol)).Return(nil)
|
||||
mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_ACTIVE_BAL, []byte(firstVoucher.Balance)).Return(nil)
|
||||
}
|
||||
@ -2006,8 +1943,7 @@ func TestCheckVouchers(t *testing.T) {
|
||||
|
||||
mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_PUBLIC_KEY).Return([]byte(publicKey), nil)
|
||||
|
||||
mockVouchersResponse := &models.VoucherHoldingResponse{}
|
||||
mockVouchersResponse.Result.Holdings = []dataserviceapi.TokenHoldings{
|
||||
mockVouchersResponse := []dataserviceapi.TokenHoldings{
|
||||
{ContractAddress: "0xd4c288865Ce", TokenSymbol: "SRF", TokenDecimals: "6", Balance: "100"},
|
||||
{ContractAddress: "0x41c188d63Qa", TokenSymbol: "MILO", TokenDecimals: "4", Balance: "200"},
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user