Newer
Older
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:ginkgo/data/models/transaction.dart';
import 'package:ginkgo/data/models/transaction_state.dart';
});
test('test put', () async {
final MemoryFallbackBox<String> fallbackBox = MemoryFallbackBox<String>();
await fallbackBox.put('key', 'value');
final String? value = fallbackBox.get('key');
expect(value, 'value');
});
test('Test parsing', () async {
TestWidgetsFlutterBinding.ensureInitialized();
final String txData = await rootBundle.loadString('assets/tx.json');
expect(result.balance, equals(6700));
final List<Transaction> txs = result.transactions;
for (final Transaction tx in txs) {
expect(tx.recipientsWithoutCashBack.contains(tx.from), equals(false));
txs.first.recipients[0].pubKey ==
'9Bcx5JV3swCQBEeH3PcuNcBVperLscWtN78hjFVx1yzG',
txs.first.from.pubKey != '9Bcx5JV3swCQBEeH3PcuNcBVperLscWtN78hjFVx1yzG',
equals(true));
expect(txs[txs.length - 2].amount < 0, equals(true));
expect(txs.last.amount > 0, equals(true));
});
test('Test gva history parsing', () async {
TestWidgetsFlutterBinding.ensureInitialized();
final String txData = await rootBundle.loadString('assets/gva-tx.json');
final TransactionState result = await transactionsV1Parser(
TransactionState.emptyState,
'6DrGg8cftpkgffv4Y4Lse9HSjgc8coEQor3yvMPHAnVH');
expect(result.balance, equals(3));
final List<Transaction> txs = result.transactions;
for (final Transaction tx in txs) {
expect(tx.recipientsWithoutCashBack.contains(tx.from), equals(false));
equals('BrgsSYK3xUzDyztGBHmxq69gfNxBfe2UKpxG21oZUBr5'));
equals('6DrGg8cftpkgffv4Y4Lse9HSjgc8coEQor3yvMPHAnVH'));
expect(txs.first.type, equals(TransactionType.receiving));
expect(txs.first.amount, equals(100));
equals('EDB7chzCBdtUCnqFZquVeto4a65FjeRkPrqcV8NwVbTx'));
equals('6DrGg8cftpkgffv4Y4Lse9HSjgc8coEQor3yvMPHAnVH'));
expect(txs[1].amount, equals(-1200));
expect(txs[1].type, equals(TransactionType.sent));
equals('A1Fc1VoCLKHyPYmXimYECSmjmsceqwRSZcTBXfgG9JaB'));
equals('6DrGg8cftpkgffv4Y4Lse9HSjgc8coEQor3yvMPHAnVH'));
expect(txs.last.type, equals(TransactionType.received));
expect(txs.last.amount, equals(10000));
const String emptyTx = '''
{
"data": {
"balance": null,
"currentUd": {
"amount": 1068,
"base": 0
},
"txsHistoryBc": {
"both": {
"edges": [],
"pageInfo": {
"endCursor": null,
"hasNextPage": false,
"hasPreviousPage": false,
"startCursor": null
}
}
},
"txsHistoryMp": {
"receiving": [],
"sending": []
}
}
}''';
final TransactionState emptyResult = await transactionsV1Parser(
TransactionState.emptyState,
'6DrGg8cftpkgffv4Y4Lse9HSjgc8coEQor3yvMPHAnVH');
expect(emptyResult.balance, equals(0));
final List<Transaction> emptyTxs = emptyResult.transactions;
expect(emptyTxs.length, equals(0));
});