mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2025-02-02 03:06:29 +00:00
fix: uncomment previously disabled tests and fix them
This commit is contained in:
parent
9046379d18
commit
061f7d5c0d
37 changed files with 2878 additions and 1638 deletions
|
@ -16,6 +16,7 @@ import 'package:stackwallet/services/wallets.dart';
|
||||||
import 'package:stackwallet/services/wallets_service.dart';
|
import 'package:stackwallet/services/wallets_service.dart';
|
||||||
import 'package:stackwallet/themes/stack_colors.dart';
|
import 'package:stackwallet/themes/stack_colors.dart';
|
||||||
import 'package:stackwallet/themes/theme_service.dart';
|
import 'package:stackwallet/themes/theme_service.dart';
|
||||||
|
import 'package:stackwallet/utilities/amount/amount_unit.dart';
|
||||||
import 'package:stackwallet/utilities/enums/coin_enum.dart';
|
import 'package:stackwallet/utilities/enums/coin_enum.dart';
|
||||||
import 'package:stackwallet/utilities/prefs.dart';
|
import 'package:stackwallet/utilities/prefs.dart';
|
||||||
|
|
||||||
|
@ -35,155 +36,161 @@ import 'send_view_test.mocks.dart';
|
||||||
MockSpec<CoinServiceAPI>(returnNullOnMissingStub: true),
|
MockSpec<CoinServiceAPI>(returnNullOnMissingStub: true),
|
||||||
])
|
])
|
||||||
void main() {
|
void main() {
|
||||||
// testWidgets("Send to valid address", (widgetTester) async {
|
testWidgets("Send to valid address", (widgetTester) async {
|
||||||
// final mockWallets = MockWallets();
|
final mockWallets = MockWallets();
|
||||||
// final mockWalletsService = MockWalletsService();
|
final mockWalletsService = MockWalletsService();
|
||||||
// final mockNodeService = MockNodeService();
|
final mockNodeService = MockNodeService();
|
||||||
// final CoinServiceAPI wallet = MockBitcoinWallet();
|
final CoinServiceAPI wallet = MockBitcoinWallet();
|
||||||
// final mockLocaleService = MockLocaleService();
|
final mockLocaleService = MockLocaleService();
|
||||||
// final mockThemeService = MockThemeService();
|
final mockThemeService = MockThemeService();
|
||||||
// final mockPrefs = MockPrefs();
|
final mockPrefs = MockPrefs();
|
||||||
//
|
|
||||||
// when(wallet.coin).thenAnswer((_) => Coin.bitcoin);
|
|
||||||
// when(wallet.walletName).thenAnswer((_) => "some wallet");
|
|
||||||
// when(wallet.walletId).thenAnswer((_) => "wallet id");
|
|
||||||
//
|
|
||||||
// final manager = Manager(wallet);
|
|
||||||
// when(mockWallets.getManagerProvider("wallet id")).thenAnswer(
|
|
||||||
// (realInvocation) => ChangeNotifierProvider((ref) => manager));
|
|
||||||
// when(mockWallets.getManager("wallet id"))
|
|
||||||
// .thenAnswer((realInvocation) => manager);
|
|
||||||
//
|
|
||||||
// when(mockLocaleService.locale).thenAnswer((_) => "en_US");
|
|
||||||
// when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
|
||||||
// (_) => StackTheme.fromJson(
|
|
||||||
// json: lightThemeJsonMap,
|
|
||||||
// applicationThemesDirectoryPath: "test",
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
// when(mockPrefs.currency).thenAnswer((_) => "USD");
|
|
||||||
// when(mockPrefs.enableCoinControl).thenAnswer((_) => false);
|
|
||||||
// when(wallet.validateAddress("send to address"))
|
|
||||||
// .thenAnswer((realInvocation) => true);
|
|
||||||
//
|
|
||||||
// await widgetTester.pumpWidget(
|
|
||||||
// ProviderScope(
|
|
||||||
// overrides: [
|
|
||||||
// walletsChangeNotifierProvider.overrideWithValue(mockWallets),
|
|
||||||
// walletsServiceChangeNotifierProvider
|
|
||||||
// .overrideWithValue(mockWalletsService),
|
|
||||||
// nodeServiceChangeNotifierProvider.overrideWithValue(mockNodeService),
|
|
||||||
// localeServiceChangeNotifierProvider
|
|
||||||
// .overrideWithValue(mockLocaleService),
|
|
||||||
// prefsChangeNotifierProvider.overrideWithValue(mockPrefs),
|
|
||||||
// pThemeService.overrideWithValue(mockThemeService),
|
|
||||||
// // previewTxButtonStateProvider
|
|
||||||
// ],
|
|
||||||
// child: MaterialApp(
|
|
||||||
// theme: ThemeData(
|
|
||||||
// extensions: [
|
|
||||||
// StackColors.fromStackColorTheme(
|
|
||||||
// StackTheme.fromJson(
|
|
||||||
// json: lightThemeJsonMap,
|
|
||||||
// applicationThemesDirectoryPath: "test",
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// home: SendView(
|
|
||||||
// walletId: "wallet id",
|
|
||||||
// coin: Coin.bitcoin,
|
|
||||||
// autoFillData: SendViewAutoFillData(
|
|
||||||
// address: "send to address", contactLabel: "contact label"),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
//
|
|
||||||
// await widgetTester.pumpAndSettle();
|
|
||||||
//
|
|
||||||
// expect(find.text("Send to"), findsOneWidget);
|
|
||||||
// expect(find.text("Amount"), findsOneWidget);
|
|
||||||
// expect(find.text("Note (optional)"), findsOneWidget);
|
|
||||||
// expect(find.text("Transaction fee (estimated)"), findsOneWidget);
|
|
||||||
// verify(manager.validateAddress("send to address")).called(1);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// testWidgets("Send to invalid address", (widgetTester) async {
|
when(wallet.coin).thenAnswer((_) => Coin.bitcoin);
|
||||||
// final mockWallets = MockWallets();
|
when(wallet.walletName).thenAnswer((_) => "some wallet");
|
||||||
// final mockWalletsService = MockWalletsService();
|
when(wallet.walletId).thenAnswer((_) => "wallet id");
|
||||||
// final mockNodeService = MockNodeService();
|
|
||||||
// final CoinServiceAPI wallet = MockBitcoinWallet();
|
final manager = Manager(wallet);
|
||||||
// final mockLocaleService = MockLocaleService();
|
when(mockWallets.getManagerProvider("wallet id")).thenAnswer(
|
||||||
// final mockPrefs = MockPrefs();
|
(realInvocation) => ChangeNotifierProvider((ref) => manager));
|
||||||
// final mockThemeService = MockThemeService();
|
when(mockWallets.getManager("wallet id"))
|
||||||
//
|
.thenAnswer((realInvocation) => manager);
|
||||||
// when(wallet.coin).thenAnswer((_) => Coin.bitcoin);
|
|
||||||
// when(wallet.walletName).thenAnswer((_) => "some wallet");
|
when(mockLocaleService.locale).thenAnswer((_) => "en_US");
|
||||||
// when(wallet.walletId).thenAnswer((_) => "wallet id");
|
when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
||||||
//
|
(_) => StackTheme.fromJson(
|
||||||
// final manager = Manager(wallet);
|
json: lightThemeJsonMap,
|
||||||
// when(mockWallets.getManagerProvider("wallet id")).thenAnswer(
|
applicationThemesDirectoryPath: "test",
|
||||||
// (realInvocation) => ChangeNotifierProvider((ref) => manager));
|
),
|
||||||
// when(mockWallets.getManager("wallet id"))
|
);
|
||||||
// .thenAnswer((realInvocation) => manager);
|
when(mockPrefs.currency).thenAnswer((_) => "USD");
|
||||||
//
|
when(mockPrefs.enableCoinControl).thenAnswer((_) => false);
|
||||||
// when(mockLocaleService.locale).thenAnswer((_) => "en_US");
|
when(mockPrefs.amountUnit(Coin.bitcoin)).thenAnswer(
|
||||||
// when(mockPrefs.currency).thenAnswer((_) => "USD");
|
(_) => AmountUnit.normal,
|
||||||
// when(mockPrefs.enableCoinControl).thenAnswer((_) => false);
|
);
|
||||||
// when(wallet.validateAddress("send to address"))
|
when(wallet.validateAddress("send to address"))
|
||||||
// .thenAnswer((realInvocation) => false);
|
.thenAnswer((realInvocation) => true);
|
||||||
// when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
|
||||||
// (_) => StackTheme.fromJson(
|
await widgetTester.pumpWidget(
|
||||||
// json: lightThemeJsonMap,
|
ProviderScope(
|
||||||
// applicationThemesDirectoryPath: "test",
|
overrides: [
|
||||||
// ),
|
walletsChangeNotifierProvider.overrideWithValue(mockWallets),
|
||||||
// );
|
walletsServiceChangeNotifierProvider
|
||||||
//
|
.overrideWithValue(mockWalletsService),
|
||||||
// // when(manager.isOwnAddress("send to address"))
|
nodeServiceChangeNotifierProvider.overrideWithValue(mockNodeService),
|
||||||
// // .thenAnswer((realInvocation) => Future(() => true));
|
localeServiceChangeNotifierProvider
|
||||||
//
|
.overrideWithValue(mockLocaleService),
|
||||||
// await widgetTester.pumpWidget(
|
prefsChangeNotifierProvider.overrideWithValue(mockPrefs),
|
||||||
// ProviderScope(
|
pThemeService.overrideWithValue(mockThemeService),
|
||||||
// overrides: [
|
// previewTxButtonStateProvider
|
||||||
// walletsChangeNotifierProvider.overrideWithValue(mockWallets),
|
],
|
||||||
// walletsServiceChangeNotifierProvider
|
child: MaterialApp(
|
||||||
// .overrideWithValue(mockWalletsService),
|
theme: ThemeData(
|
||||||
// nodeServiceChangeNotifierProvider.overrideWithValue(mockNodeService),
|
extensions: [
|
||||||
// localeServiceChangeNotifierProvider
|
StackColors.fromStackColorTheme(
|
||||||
// .overrideWithValue(mockLocaleService),
|
StackTheme.fromJson(
|
||||||
// prefsChangeNotifierProvider.overrideWithValue(mockPrefs),
|
json: lightThemeJsonMap,
|
||||||
// pThemeService.overrideWithValue(mockThemeService)
|
applicationThemesDirectoryPath: "test",
|
||||||
// // previewTxButtonStateProvider
|
),
|
||||||
// ],
|
),
|
||||||
// child: MaterialApp(
|
],
|
||||||
// theme: ThemeData(
|
),
|
||||||
// extensions: [
|
home: SendView(
|
||||||
// StackColors.fromStackColorTheme(
|
walletId: "wallet id",
|
||||||
// StackTheme.fromJson(
|
coin: Coin.bitcoin,
|
||||||
// json: lightThemeJsonMap,
|
autoFillData: SendViewAutoFillData(
|
||||||
// applicationThemesDirectoryPath: "test",
|
address: "send to address", contactLabel: "contact label"),
|
||||||
// ),
|
),
|
||||||
// ),
|
),
|
||||||
// ],
|
),
|
||||||
// ),
|
);
|
||||||
// home: SendView(
|
|
||||||
// walletId: "wallet id",
|
await widgetTester.pumpAndSettle();
|
||||||
// coin: Coin.bitcoin,
|
|
||||||
// autoFillData: SendViewAutoFillData(
|
expect(find.text("Send to"), findsOneWidget);
|
||||||
// address: "send to address", contactLabel: "contact label"),
|
expect(find.text("Amount"), findsOneWidget);
|
||||||
// ),
|
expect(find.text("Note (optional)"), findsOneWidget);
|
||||||
// ),
|
expect(find.text("Transaction fee (estimated)"), findsOneWidget);
|
||||||
// ),
|
verify(manager.validateAddress("send to address")).called(1);
|
||||||
// );
|
});
|
||||||
//
|
|
||||||
// await widgetTester.pumpAndSettle();
|
testWidgets("Send to invalid address", (widgetTester) async {
|
||||||
//
|
final mockWallets = MockWallets();
|
||||||
// expect(find.text("Send to"), findsOneWidget);
|
final mockWalletsService = MockWalletsService();
|
||||||
// expect(find.text("Amount"), findsOneWidget);
|
final mockNodeService = MockNodeService();
|
||||||
// expect(find.text("Note (optional)"), findsOneWidget);
|
final CoinServiceAPI wallet = MockBitcoinWallet();
|
||||||
// expect(find.text("Transaction fee (estimated)"), findsOneWidget);
|
final mockLocaleService = MockLocaleService();
|
||||||
// expect(find.text("Invalid address"), findsOneWidget);
|
final mockPrefs = MockPrefs();
|
||||||
// verify(manager.validateAddress("send to address")).called(1);
|
final mockThemeService = MockThemeService();
|
||||||
// });
|
|
||||||
|
when(wallet.coin).thenAnswer((_) => Coin.bitcoin);
|
||||||
|
when(wallet.walletName).thenAnswer((_) => "some wallet");
|
||||||
|
when(wallet.walletId).thenAnswer((_) => "wallet id");
|
||||||
|
|
||||||
|
final manager = Manager(wallet);
|
||||||
|
when(mockWallets.getManagerProvider("wallet id")).thenAnswer(
|
||||||
|
(realInvocation) => ChangeNotifierProvider((ref) => manager));
|
||||||
|
when(mockWallets.getManager("wallet id"))
|
||||||
|
.thenAnswer((realInvocation) => manager);
|
||||||
|
|
||||||
|
when(mockLocaleService.locale).thenAnswer((_) => "en_US");
|
||||||
|
when(mockPrefs.currency).thenAnswer((_) => "USD");
|
||||||
|
when(mockPrefs.enableCoinControl).thenAnswer((_) => false);
|
||||||
|
when(mockPrefs.amountUnit(Coin.bitcoin)).thenAnswer(
|
||||||
|
(_) => AmountUnit.normal,
|
||||||
|
);
|
||||||
|
when(wallet.validateAddress("send to address"))
|
||||||
|
.thenAnswer((realInvocation) => false);
|
||||||
|
when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
||||||
|
(_) => StackTheme.fromJson(
|
||||||
|
json: lightThemeJsonMap,
|
||||||
|
applicationThemesDirectoryPath: "test",
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
// when(manager.isOwnAddress("send to address"))
|
||||||
|
// .thenAnswer((realInvocation) => Future(() => true));
|
||||||
|
|
||||||
|
await widgetTester.pumpWidget(
|
||||||
|
ProviderScope(
|
||||||
|
overrides: [
|
||||||
|
walletsChangeNotifierProvider.overrideWithValue(mockWallets),
|
||||||
|
walletsServiceChangeNotifierProvider
|
||||||
|
.overrideWithValue(mockWalletsService),
|
||||||
|
nodeServiceChangeNotifierProvider.overrideWithValue(mockNodeService),
|
||||||
|
localeServiceChangeNotifierProvider
|
||||||
|
.overrideWithValue(mockLocaleService),
|
||||||
|
prefsChangeNotifierProvider.overrideWithValue(mockPrefs),
|
||||||
|
pThemeService.overrideWithValue(mockThemeService)
|
||||||
|
// previewTxButtonStateProvider
|
||||||
|
],
|
||||||
|
child: MaterialApp(
|
||||||
|
theme: ThemeData(
|
||||||
|
extensions: [
|
||||||
|
StackColors.fromStackColorTheme(
|
||||||
|
StackTheme.fromJson(
|
||||||
|
json: lightThemeJsonMap,
|
||||||
|
applicationThemesDirectoryPath: "test",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
home: SendView(
|
||||||
|
walletId: "wallet id",
|
||||||
|
coin: Coin.bitcoin,
|
||||||
|
autoFillData: SendViewAutoFillData(
|
||||||
|
address: "send to address", contactLabel: "contact label"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
await widgetTester.pumpAndSettle();
|
||||||
|
|
||||||
|
expect(find.text("Send to"), findsOneWidget);
|
||||||
|
expect(find.text("Amount"), findsOneWidget);
|
||||||
|
expect(find.text("Note (optional)"), findsOneWidget);
|
||||||
|
expect(find.text("Transaction fee (estimated)"), findsOneWidget);
|
||||||
|
expect(find.text("Invalid address"), findsOneWidget);
|
||||||
|
verify(manager.validateAddress("send to address")).called(1);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -987,7 +987,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
_i23.Future<List<_i18.UTXO>> get utxos => (super.noSuchMethod(
|
_i23.Future<List<_i18.UTXO>> get utxos => (super.noSuchMethod(
|
||||||
|
@ -2837,7 +2837,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
@ -3205,7 +3205,7 @@ class MockCoinServiceAPI extends _i1.Mock implements _i20.CoinServiceAPI {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -21,328 +21,383 @@ void main() {
|
||||||
boxName: DB.boxNamePrefs, key: "externalCalls", value: true);
|
boxName: DB.boxNamePrefs, key: "externalCalls", value: true);
|
||||||
});
|
});
|
||||||
|
|
||||||
// test("getPricesAnd24hChange fetch", () async {
|
test("getPricesAnd24hChange fetch", () async {
|
||||||
// final client = MockClient();
|
final client = MockClient();
|
||||||
//
|
|
||||||
// when(client.get(
|
|
||||||
// Uri.parse(
|
|
||||||
// "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids"
|
|
||||||
// "=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,bitcoin-cash"
|
|
||||||
// ",namecoin,wownero,ethereum,particl&order=market_cap_desc&per_page=50"
|
|
||||||
// "&page=1&sparkline=false"),
|
|
||||||
// headers: {
|
|
||||||
// 'Content-Type': 'application/json'
|
|
||||||
// })).thenAnswer((_) async => Response(
|
|
||||||
// '[{"id":"bitcoin","symbol":"btc","name":"Bitcoin","image":"https://asse'
|
|
||||||
// 'ts.coingecko.com/coins/images/1/large/bitcoin.png?1547033579","curr'
|
|
||||||
// 'ent_price":1.0,"market_cap":19128800,"market_cap_rank":1,"fully_dil'
|
|
||||||
// 'uted_valuation":21000000,"total_volume":1272132,"high_24h":1.0,"low'
|
|
||||||
// '_24h":1.0,"price_change_24h":0.0,"price_change_percentage_24h":0.0,'
|
|
||||||
// '"market_cap_change_24h":950.0,"market_cap_change_percentage_24h":0.0'
|
|
||||||
// '0497,"circulating_supply":19128800.0,"total_supply":21000000.0,"max'
|
|
||||||
// '_supply":21000000.0,"ath":1.003301,"ath_change_percentage":-0.32896'
|
|
||||||
// ',"ath_date":"2019-10-15T16:00:56.136Z","atl":0.99895134,"atl_change_'
|
|
||||||
// 'percentage":0.10498,"atl_date":"2019-10-21T00:00:00.000Z","roi":nul'
|
|
||||||
// 'l,"last_updated":"2022-08-22T16:37:59.237Z"},{"id":"dogecoin","symb'
|
|
||||||
// 'ol":"doge","name":"Dogecoin","image":"https://assets.coingecko.com/'
|
|
||||||
// 'coins/images/5/large/dogecoin.png?1547792256","current_price":3.15e'
|
|
||||||
// '-06,"market_cap":417916,"market_cap_rank":10,"fully_diluted_valuati'
|
|
||||||
// 'on":null,"total_volume":27498,"high_24h":3.26e-06,"low_24h":3.13e-0'
|
|
||||||
// '6,"price_change_24h":-8.6889947714e-08,"price_change_percentage_24h'
|
|
||||||
// '":-2.68533,"market_cap_change_24h":-11370.894861206936,"market_cap_c'
|
|
||||||
// 'hange_percentage_24h":-2.64879,"circulating_supply":132670764299.89'
|
|
||||||
// '4,"total_supply":null,"max_supply":null,"ath":1.264e-05,"ath_change'
|
|
||||||
// '_percentage":-75.05046,"ath_date":"2021-05-07T23:04:53.026Z","atl":'
|
|
||||||
// '1.50936e-07,"atl_change_percentage":1989.69346,"atl_date":"2020-12-'
|
|
||||||
// '17T09:18:05.654Z","roi":null,"last_updated":"2022-08-22T16:38:15.11'
|
|
||||||
// '3Z"},{"id":"monero","symbol":"xmr","name":"Monero","image":"https:/'
|
|
||||||
// '/assets.coingecko.com/coins/images/69/large/monero_logo.png?1547033'
|
|
||||||
// '729","current_price":0.00717236,"market_cap":130002,"market_cap_ran'
|
|
||||||
// 'k":29,"fully_diluted_valuation":null,"total_volume":4901,"high_24h":'
|
|
||||||
// '0.00731999,"low_24h":0.00707511,"price_change_24h":-5.6133543212467'
|
|
||||||
// 'e-05,"price_change_percentage_24h":-0.77656,"market_cap_change_24h"'
|
|
||||||
// ':-1007.8447677436197,"market_cap_change_percentage_24h":-0.76929,"c'
|
|
||||||
// 'irculating_supply":18147820.3764146,"total_supply":null,"max_supply'
|
|
||||||
// '":null,"ath":0.03475393,"ath_change_percentage":-79.32037,"ath_date'
|
|
||||||
// '":"2018-01-09T00:00:00.000Z","atl":0.00101492,"atl_change_percentag'
|
|
||||||
// 'e":608.13327,"atl_date":"2014-12-18T00:00:00.000Z","roi":null,"las'
|
|
||||||
// 't_updated":"2022-08-22T16:38:26.347Z"},{"id":"zcoin","symbol":"firo'
|
|
||||||
// '","name":"Firo","image":"https://assets.coingecko.com/coins/images/'
|
|
||||||
// '479/large/firocoingecko.png?1636537544","current_price":0.0001096,"'
|
|
||||||
// 'market_cap":1252,"market_cap_rank":604,"fully_diluted_valuation":234'
|
|
||||||
// '9,"total_volume":90.573,"high_24h":0.00011148,"low_24h":0.00010834,'
|
|
||||||
// '"price_change_24h":-9.87561775002e-07,"price_change_percentage_24h'
|
|
||||||
// '":-0.89304,"market_cap_change_24h":-10.046635178462793,"market_cap_'
|
|
||||||
// 'change_percentage_24h":-0.79578,"circulating_supply":11411043.83546'
|
|
||||||
// '97,"total_supply":21400000.0,"max_supply":21400000.0,"ath":0.016162'
|
|
||||||
// '72,"ath_change_percentage":-99.3208,"ath_date":"2018-04-04T16:04:48.'
|
|
||||||
// '408Z","atl":4.268e-05,"atl_change_percentage":157.22799,"atl_date":"'
|
|
||||||
// '2022-05-12T07:28:47.088Z","roi":null,"last_updated":"2022-08-22T16'
|
|
||||||
// ':38:47.229Z"},{"id":"epic-cash","symbol":"epic","name":"Epic Cash",'
|
|
||||||
// '"image":"https://assets.coingecko.com/coins/images/9520/large/Epic_C'
|
|
||||||
// 'oin_NO_drop_shadow.png?1620122642","current_price":2.803e-05,"marke'
|
|
||||||
// 't_cap":415.109,"market_cap_rank":953,"fully_diluted_valuation":null'
|
|
||||||
// ',"total_volume":0.2371557,"high_24h":3.053e-05,"low_24h":2.581e-05'
|
|
||||||
// ',"price_change_24h":1.9e-06,"price_change_percentage_24h":7.27524,"'
|
|
||||||
// 'market_cap_change_24h":28.26753,"market_cap_change_percentage_24h":'
|
|
||||||
// '7.30726,"circulating_supply":14808052.0,"total_supply":21000000.0,"'
|
|
||||||
// 'max_supply":null,"ath":0.00013848,"ath_change_percentage":-79.75864'
|
|
||||||
// ',"ath_date":"2021-12-11T08:39:41.129Z","atl":5.74028e-07,"atl_chang'
|
|
||||||
// 'e_percentage":4783.08078,"atl_date":"2020-03-13T16:55:01.177Z","roi'
|
|
||||||
// '":null,"last_updated":"2022-08-22T16:38:32.826Z"}]',
|
|
||||||
// 200));
|
|
||||||
//
|
|
||||||
// final priceAPI = PriceAPI(client);
|
|
||||||
// priceAPI.resetLastCalledToForceNextCallToUpdateCache();
|
|
||||||
//
|
|
||||||
// final price = await priceAPI.getPricesAnd24hChange(baseCurrency: "btc");
|
|
||||||
//
|
|
||||||
// expect(
|
|
||||||
// price.toString(),
|
|
||||||
// '{Coin.bitcoin: [1, 0.0], Coin.bitcoincash: [0, 0.0], '
|
|
||||||
// 'Coin.dogecoin: [0.00000315, -2.68533], '
|
|
||||||
// 'Coin.eCash: [0, 0.0], Coin.epicCash: [0.00002803, 7.27524], '
|
|
||||||
// 'Coin.ethereum: [0, 0.0], '
|
|
||||||
// 'Coin.firo: [0.0001096, -0.89304], Coin.litecoin: [0, 0.0], '
|
|
||||||
// 'Coin.monero: [0.00717236, -0.77656], Coin.namecoin: [0, 0.0], '
|
|
||||||
// 'Coin.particl: [0, 0.0], Coin.wownero: [0, 0.0], '
|
|
||||||
// 'Coin.bitcoinTestNet: [0, 0.0],'
|
|
||||||
// ' Coin.litecoinTestNet: [0, 0.0], Coin.bitcoincashTestnet: [0, 0.0], '
|
|
||||||
// 'Coin.dogecoinTestNet: [0, 0.0], Coin.firoTestNet: [0, 0.0]}',
|
|
||||||
// );
|
|
||||||
// verify(client.get(
|
|
||||||
// Uri.parse(
|
|
||||||
// "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc"
|
|
||||||
// "&ids=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,"
|
|
||||||
// "bitcoin-cash,namecoin,wownero,ethereum,particl"
|
|
||||||
// "&order=market_cap_desc&per_page=50&page=1&sparkline=false",
|
|
||||||
// ),
|
|
||||||
// headers: {'Content-Type': 'application/json'})).called(1);
|
|
||||||
//
|
|
||||||
// verifyNoMoreInteractions(client);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// test("cached price fetch", () async {
|
when(client.get(
|
||||||
// final client = MockClient();
|
Uri.parse(
|
||||||
//
|
"https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids"
|
||||||
// when(client.get(
|
"=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,bitcoin-cash"
|
||||||
// Uri.parse(
|
",namecoin,wownero,ethereum,particl,nano,ban&order=market_cap_desc&per_page=50"
|
||||||
// "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&"
|
"&page=1&sparkline=false"),
|
||||||
// "ids=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,"
|
headers: {
|
||||||
// "bitcoin-cash,namecoin,wownero,ethereum,particl"
|
'Content-Type': 'application/json'
|
||||||
// "&order=market_cap_desc&per_page=50&page=1&sparkline=false"),
|
})).thenAnswer((_) async => Response(
|
||||||
// headers: {
|
'[{"id":"bitcoin","symbol":"btc","name":"Bitcoin","image":"https://asse'
|
||||||
// 'Content-Type': 'application/json'
|
'ts.coingecko.com/coins/images/1/large/bitcoin.png?1547033579","curr'
|
||||||
// })).thenAnswer((_) async => Response(
|
'ent_price":1.0,"market_cap":19128800,"market_cap_rank":1,"fully_dil'
|
||||||
// '[{"id":"bitcoin","symbol":"btc","name":"Bitcoin","image":"https://a'
|
'uted_valuation":21000000,"total_volume":1272132,"high_24h":1.0,"low'
|
||||||
// 'ssets.coingecko.com/coins/images/1/large/bitcoin.png?1547033579","c'
|
'_24h":1.0,"price_change_24h":0.0,"price_change_percentage_24h":0.0,'
|
||||||
// 'urrent_price":1.0,"market_cap":19128800,"market_cap_rank":1,"fully_'
|
'"market_cap_change_24h":950.0,"market_cap_change_percentage_24h":0.0'
|
||||||
// 'diluted_valuation":21000000,"total_volume":1272132,"high_24h":1.0,"'
|
'0497,"circulating_supply":19128800.0,"total_supply":21000000.0,"max'
|
||||||
// 'low_24h":1.0,"price_change_24h":0.0,"price_change_percentage_24h":0'
|
'_supply":21000000.0,"ath":1.003301,"ath_change_percentage":-0.32896'
|
||||||
// '.0,"market_cap_change_24h":950.0,"market_cap_change_percentage_24h"'
|
',"ath_date":"2019-10-15T16:00:56.136Z","atl":0.99895134,"atl_change_'
|
||||||
// ':0.00497,"circulating_supply":19128800.0,"total_supply":21000000.0,"'
|
'percentage":0.10498,"atl_date":"2019-10-21T00:00:00.000Z","roi":nul'
|
||||||
// 'max_supply":21000000.0,"ath":1.003301,"ath_change_percentage":-0.32'
|
'l,"last_updated":"2022-08-22T16:37:59.237Z"},{"id":"dogecoin","symb'
|
||||||
// '896,"ath_date":"2019-10-15T16:00:56.136Z","atl":0.99895134,"atl_cha'
|
'ol":"doge","name":"Dogecoin","image":"https://assets.coingecko.com/'
|
||||||
// 'nge_percentage":0.10498,"atl_date":"2019-10-21T00:00:00.000Z","roi"'
|
'coins/images/5/large/dogecoin.png?1547792256","current_price":3.15e'
|
||||||
// ':null,"last_updated":"2022-08-22T16:37:59.237Z"},{"id":"dogecoin","'
|
'-06,"market_cap":417916,"market_cap_rank":10,"fully_diluted_valuati'
|
||||||
// 'symbol":"doge","name":"Dogecoin","image":"https://assets.coingecko.'
|
'on":null,"total_volume":27498,"high_24h":3.26e-06,"low_24h":3.13e-0'
|
||||||
// 'com/coins/images/5/large/dogecoin.png?1547792256","current_price":3'
|
'6,"price_change_24h":-8.6889947714e-08,"price_change_percentage_24h'
|
||||||
// '.15e-06,"market_cap":417916,"market_cap_rank":10,"fully_diluted_val'
|
'":-2.68533,"market_cap_change_24h":-11370.894861206936,"market_cap_c'
|
||||||
// 'uation":null,"total_volume":27498,"high_24h":3.26e-06,"low_24h":3.1'
|
'hange_percentage_24h":-2.64879,"circulating_supply":132670764299.89'
|
||||||
// '3e-06,"price_change_24h":-8.6889947714e-08,"price_change_percentage'
|
'4,"total_supply":null,"max_supply":null,"ath":1.264e-05,"ath_change'
|
||||||
// '_24h":-2.68533,"market_cap_change_24h":-11370.894861206936,"market_'
|
'_percentage":-75.05046,"ath_date":"2021-05-07T23:04:53.026Z","atl":'
|
||||||
// 'cap_change_percentage_24h":-2.64879,"circulating_supply":1326707642'
|
'1.50936e-07,"atl_change_percentage":1989.69346,"atl_date":"2020-12-'
|
||||||
// '99.894,"total_supply":null,"max_supply":null,"ath":1.264e-05,"ath_c'
|
'17T09:18:05.654Z","roi":null,"last_updated":"2022-08-22T16:38:15.11'
|
||||||
// 'hange_percentage":-75.05046,"ath_date":"2021-05-07T23:04:53.026Z","'
|
'3Z"},{"id":"monero","symbol":"xmr","name":"Monero","image":"https:/'
|
||||||
// 'atl":1.50936e-07,"atl_change_percentage":1989.69346,"atl_date":"202'
|
'/assets.coingecko.com/coins/images/69/large/monero_logo.png?1547033'
|
||||||
// '0-12-17T09:18:05.654Z","roi":null,"last_updated":"2022-08-22T16:38:'
|
'729","current_price":0.00717236,"market_cap":130002,"market_cap_ran'
|
||||||
// '15.113Z"},{"id":"monero","symbol":"xmr","name":"Monero","image":"ht'
|
'k":29,"fully_diluted_valuation":null,"total_volume":4901,"high_24h":'
|
||||||
// 'tps://assets.coingecko.com/coins/images/69/large/monero_logo.png?15'
|
'0.00731999,"low_24h":0.00707511,"price_change_24h":-5.6133543212467'
|
||||||
// '47033729","current_price":0.00717236,"market_cap":130002,"market_cap'
|
'e-05,"price_change_percentage_24h":-0.77656,"market_cap_change_24h"'
|
||||||
// '_rank":29,"fully_diluted_valuation":null,"total_volume":4901,"high'
|
':-1007.8447677436197,"market_cap_change_percentage_24h":-0.76929,"c'
|
||||||
// '_24h":0.00731999,"low_24h":0.00707511,"price_change_24h":-5.613354'
|
'irculating_supply":18147820.3764146,"total_supply":null,"max_supply'
|
||||||
// '3212467e-05,"price_change_percentage_24h":-0.77656,"market_cap_chan'
|
'":null,"ath":0.03475393,"ath_change_percentage":-79.32037,"ath_date'
|
||||||
// 'ge_24h":-1007.8447677436197,"market_cap_change_percentage_24h":-0.7'
|
'":"2018-01-09T00:00:00.000Z","atl":0.00101492,"atl_change_percentag'
|
||||||
// '6929,"circulating_supply":18147820.3764146,"total_supply":null,"ma'
|
'e":608.13327,"atl_date":"2014-12-18T00:00:00.000Z","roi":null,"las'
|
||||||
// 'x_supply":null,"ath":0.03475393,"ath_change_percentage":-79.32037,"'
|
't_updated":"2022-08-22T16:38:26.347Z"},{"id":"zcoin","symbol":"firo'
|
||||||
// 'ath_date":"2018-01-09T00:00:00.000Z","atl":0.00101492,"atl_change_'
|
'","name":"Firo","image":"https://assets.coingecko.com/coins/images/'
|
||||||
// 'percentage":608.13327,"atl_date":"2014-12-18T00:00:00.000Z","roi":n'
|
'479/large/firocoingecko.png?1636537544","current_price":0.0001096,"'
|
||||||
// 'ull,"last_updated":"2022-08-22T16:38:26.347Z"},{"id":"zcoin","symbo'
|
'market_cap":1252,"market_cap_rank":604,"fully_diluted_valuation":234'
|
||||||
// 'l":"firo","name":"Firo","image":"https://assets.coingecko.com/coins'
|
'9,"total_volume":90.573,"high_24h":0.00011148,"low_24h":0.00010834,'
|
||||||
// '/images/479/large/firocoingecko.png?1636537544","current_price":0.0'
|
'"price_change_24h":-9.87561775002e-07,"price_change_percentage_24h'
|
||||||
// '001096,"market_cap":1252,"market_cap_rank":604,"fully_diluted_valu'
|
'":-0.89304,"market_cap_change_24h":-10.046635178462793,"market_cap_'
|
||||||
// 'ation":2349,"total_volume":90.573,"high_24h":0.00011148,"low_24h":0'
|
'change_percentage_24h":-0.79578,"circulating_supply":11411043.83546'
|
||||||
// '.00010834,"price_change_24h":-9.87561775002e-07,"price_change_perce'
|
'97,"total_supply":21400000.0,"max_supply":21400000.0,"ath":0.016162'
|
||||||
// 'ntage_24h":-0.89304,"market_cap_change_24h":-10.046635178462793,"ma'
|
'72,"ath_change_percentage":-99.3208,"ath_date":"2018-04-04T16:04:48.'
|
||||||
// 'rket_cap_change_percentage_24h":-0.79578,"circulating_supply":11411'
|
'408Z","atl":4.268e-05,"atl_change_percentage":157.22799,"atl_date":"'
|
||||||
// '043.8354697,"total_supply":21400000.0,"max_supply":21400000.0,"ath"'
|
'2022-05-12T07:28:47.088Z","roi":null,"last_updated":"2022-08-22T16'
|
||||||
// ':0.01616272,"ath_change_percentage":-99.3208,"ath_date":"2018-04-04'
|
':38:47.229Z"},{"id":"epic-cash","symbol":"epic","name":"Epic Cash",'
|
||||||
// 'T16:04:48.408Z","atl":4.268e-05,"atl_change_percentage":157.22799,'
|
'"image":"https://assets.coingecko.com/coins/images/9520/large/Epic_C'
|
||||||
// '"atl_date":"2022-05-12T07:28:47.088Z","roi":null,"last_updated":"2'
|
'oin_NO_drop_shadow.png?1620122642","current_price":2.803e-05,"marke'
|
||||||
// '022-08-22T16:38:47.229Z"},{"id":"epic-cash","symbol":"epic","name":"'
|
't_cap":415.109,"market_cap_rank":953,"fully_diluted_valuation":null'
|
||||||
// 'Epic Cash","image":"https://assets.coingecko.com/coins/images/9520/'
|
',"total_volume":0.2371557,"high_24h":3.053e-05,"low_24h":2.581e-05'
|
||||||
// 'large/Epic_Coin_NO_drop_shadow.png?1620122642","current_price":2.80'
|
',"price_change_24h":1.9e-06,"price_change_percentage_24h":7.27524,"'
|
||||||
// '3e-05,"market_cap":415.109,"market_cap_rank":953,"fully_diluted_val'
|
'market_cap_change_24h":28.26753,"market_cap_change_percentage_24h":'
|
||||||
// 'uation":null,"total_volume":0.2371557,"high_24h":3.053e-05,"low_24h'
|
'7.30726,"circulating_supply":14808052.0,"total_supply":21000000.0,"'
|
||||||
// '":2.581e-05,"price_change_24h":1.9e-06,"price_change_percentage_24'
|
'max_supply":null,"ath":0.00013848,"ath_change_percentage":-79.75864'
|
||||||
// 'h":7.27524,"market_cap_change_24h":28.26753,"market_cap_change_perc'
|
',"ath_date":"2021-12-11T08:39:41.129Z","atl":5.74028e-07,"atl_chang'
|
||||||
// 'entage_24h":7.30726,"circulating_supply":14808052.0,"total_supply":'
|
'e_percentage":4783.08078,"atl_date":"2020-03-13T16:55:01.177Z","roi'
|
||||||
// '21000000.0,"max_supply":null,"ath":0.00013848,"ath_change_percentag'
|
'":null,"last_updated":"2022-08-22T16:38:32.826Z"}]',
|
||||||
// 'e":-79.75864,"ath_date":"2021-12-11T08:39:41.129Z","atl":5.74028e-0'
|
200));
|
||||||
// '7,"atl_change_percentage":4783.08078,"atl_date":"2020-03-13T16:55:01'
|
|
||||||
// '.177Z","roi":null,"last_updated":"2022-08-22T16:38:32.826Z"}]',
|
|
||||||
// 200));
|
|
||||||
//
|
|
||||||
// final priceAPI = PriceAPI(client);
|
|
||||||
// priceAPI.resetLastCalledToForceNextCallToUpdateCache();
|
|
||||||
//
|
|
||||||
// // initial fetch to fill cache
|
|
||||||
// await priceAPI.getPricesAnd24hChange(baseCurrency: "btc");
|
|
||||||
//
|
|
||||||
// // now this time it should grab from cache instead of http.get
|
|
||||||
// final cachedPrice =
|
|
||||||
// await priceAPI.getPricesAnd24hChange(baseCurrency: "btc");
|
|
||||||
//
|
|
||||||
// expect(
|
|
||||||
// cachedPrice.toString(),
|
|
||||||
// '{Coin.bitcoin: [1, 0.0], Coin.bitcoincash: [0, 0.0],'
|
|
||||||
// ' Coin.dogecoin: [0.00000315, -2.68533], Coin.eCash: [0, 0.0], Coin.epicCash: [0.00002803, 7.27524],'
|
|
||||||
// ' Coin.ethereum: [0, 0.0], Coin.firo: [0.0001096, -0.89304], '
|
|
||||||
// 'Coin.litecoin: [0, 0.0], Coin.monero: [0.00717236, -0.77656], '
|
|
||||||
// 'Coin.namecoin: [0, 0.0], Coin.particl: [0, 0.0], Coin.wownero: [0, 0.0], '
|
|
||||||
// 'Coin.bitcoinTestNet: [0, 0.0], Coin.litecoinTestNet: [0, 0.0], '
|
|
||||||
// 'Coin.bitcoincashTestnet: [0, 0.0], Coin.dogecoinTestNet: [0, 0.0], '
|
|
||||||
// 'Coin.firoTestNet: [0, 0.0]}');
|
|
||||||
//
|
|
||||||
// // verify only called once during filling of cache
|
|
||||||
// verify(client.get(
|
|
||||||
// Uri.parse(
|
|
||||||
// "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids"
|
|
||||||
// "=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,"
|
|
||||||
// "bitcoin-cash,namecoin,wownero,ethereum,particl"
|
|
||||||
// "&order=market_cap_desc&per_page=50&page=1&sparkline=false"),
|
|
||||||
// headers: {'Content-Type': 'application/json'})).called(1);
|
|
||||||
//
|
|
||||||
// verifyNoMoreInteractions(client);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// test("response parse failure", () async {
|
final priceAPI = PriceAPI(client);
|
||||||
// final client = MockClient();
|
priceAPI.resetLastCalledToForceNextCallToUpdateCache();
|
||||||
//
|
|
||||||
// when(client.get(
|
|
||||||
// Uri.parse(
|
|
||||||
// "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc"
|
|
||||||
// "&ids=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,"
|
|
||||||
// "bitcoin-cash,namecoin,wownero,ethereum,particl"
|
|
||||||
// "&order=market_cap_desc&per_page=50&page=1&sparkline=false"),
|
|
||||||
// headers: {
|
|
||||||
// 'Content-Type': 'application/json'
|
|
||||||
// })).thenAnswer((_) async => Response(
|
|
||||||
// '[{"id":"bitcoin","symbol":"btc","name":com/coins/images/1/large/'
|
|
||||||
// 'bitcoin.png?1547033579","current_price":1.0,"market_cap":19128800'
|
|
||||||
// ',"market_cap_rank":1,"fully_diluted_valuation":21000000,"total_volum'
|
|
||||||
// 'e":1272132,"high_24h":1.0,"low_24h":1.0,"price_change_24h":0.0,"pri'
|
|
||||||
// 'ce_change_percentage_24h":0.0,"market_cap_change_24h":950.0,"market_'
|
|
||||||
// 'cap_change_percentage_24h":0.00497,"circulating_supply":19128800.0,"t'
|
|
||||||
// 'otal_supply":21000000.0,"max_supply":21000000.0,"ath":1.003301,"ath'
|
|
||||||
// '_change_percentage":-0.32896,"ath_date":"2019-10-15T16:00:56.136Z",'
|
|
||||||
// '"atl":0.99895134,"atl_change_percentage":0.10498,"atl_date":'
|
|
||||||
// '"2019-10-21T00:00:00.000Z","roi":null,'
|
|
||||||
// '"last_updated":"2022-08-22T16:37:59.237Z"},{"id":"dogecoin"'
|
|
||||||
// ',"symbol":"doge","name":"Dogecoin","image":'
|
|
||||||
// '"https://assets.coingecko.com/coins/images/5/large/dogecoin.png?1547792256",'
|
|
||||||
// '"current_price":3.15e-06,"market_cap":417916,"market_cap_rank":10'
|
|
||||||
// ',"fully_diluted_valuation":null,"total_volume":27498,"high_24h":3'
|
|
||||||
// '.26e-06,"low_24h":3.13e-06,"price_change_24h":-8.6889947714e-08,"'
|
|
||||||
// 'price_change_percentage_24h":-2.68533,"market_cap_change_24h":-11'
|
|
||||||
// '370.894861206936,"market_cap_change_percentage_24h":-2.64879,"cir'
|
|
||||||
// 'culating_supply":132670764299.894,"total_supply":null,"max_supply'
|
|
||||||
// '":null,"ath":1.264e-05,"ath_change_percentage":-75.05046,"ath_date'
|
|
||||||
// '":"2021-05-07T23:04:53.026Z","atl":1.50936e-07,"atl_change_percen'
|
|
||||||
// 'tage":1989.69346,"atl_date":"2020-12-17T09:18:05.654Z","roi":null,'
|
|
||||||
// '"last_updated":"2022-08-22T16:38:15.113Z"},{"id":"monero","symbol"'
|
|
||||||
// ':"xmr","name":"Monero","image":"https://assets.coingecko.com/coins'
|
|
||||||
// '/images/69/large/monero_logo.png?1547033729","current_price":0.007'
|
|
||||||
// '17236,"market_cap":130002,"market_cap_rank":29,"fully_diluted_valu'
|
|
||||||
// 'ation":null,"total_volume":4901,"high_24h":0.00731999,"low_24h":0.'
|
|
||||||
// '00707511,"price_change_24h":-5.6133543212467e-05,"price_change_per'
|
|
||||||
// 'centage_24h":-0.77656,"market_cap_change_24h":-1007.8447677436197'
|
|
||||||
// ',"market_cap_change_percentage_24h":-0.76929,"circulating_supply":'
|
|
||||||
// '18147820.3764146,"total_supply":null,"max_supply":null,"ath":0.034'
|
|
||||||
// '75393,"ath_change_percentage":-79.32037,"ath_date":"2018-01-09T00:'
|
|
||||||
// '00:00.000Z","atl":0.00101492,"atl_change_percentage":608.13327,"at'
|
|
||||||
// 'l_date":"2014-12-18T00:00:00.000Z","roi":null,"last_updated":"2022'
|
|
||||||
// '-08-22T16:38:26.347Z"},{"id":"zcoin","symbol":"firo","name":"Firo"'
|
|
||||||
// ',"image":"https://assets.coingecko.com/coins/images/479/large/firo'
|
|
||||||
// 'coingecko.png?1636537544","current_price":0.0001096,"market_cap":1'
|
|
||||||
// '252,"market_cap_rank":604,"fully_diluted_valuation":2349,"total_vo'
|
|
||||||
// 'lume":90.573,"high_24h":0.00011148,"low_24h":0.00010834,"price_chang'
|
|
||||||
// 'e_24h":-9.87561775002e-07,"price_change_percentage_24h":-0.89304,'
|
|
||||||
// '"market_cap_change_24h":-10.046635178462793,"market_cap_change_per'
|
|
||||||
// 'centage_24h":-0.79578,"circulating_supply":11411043.8354697,"tota'
|
|
||||||
// 'l_supply":21400000.0,"max_supply":21400000.0,"ath":0.01616272,"ath'
|
|
||||||
// '_change_percentage":-99.3208,"ath_date":"2018-04-04T16:04:48.408Z"'
|
|
||||||
// ',"atl":4.268e-05,"atl_change_percentage":157.22799,"atl_date":"202'
|
|
||||||
// '2-05-12T07:28:47.088Z","roi":null,"last_updated":"2022-08-22T16:3'
|
|
||||||
// '8:47.229Z"},{"id":"epic-cash","symbol":"epic","name":"Epic Cash",'
|
|
||||||
// '"image":"https://assets.coingecko.com/coins/images/9520/large/'
|
|
||||||
// 'Epic_Coin_NO_drop_shadow.png?1620122642","current_price":2.803e-0'
|
|
||||||
// '5,"market_cap":415.109,"market_cap_rank":953,"fully_diluted_valuat'
|
|
||||||
// 'ion":null,"total_volume":0.2371557,"high_24h":3.053e-05,"low_24h":'
|
|
||||||
// '2.581e-05,"price_change_24h":1.9e-06,"price_change_percentage_24h"'
|
|
||||||
// ':7.27524,"market_cap_change_24h":28.26753,"market_cap_change_per'
|
|
||||||
// 'centage_24h":7.30726,"circulating_supply":14808052.0,"total_suppl'
|
|
||||||
// 'y":21000000.0,"max_supply":null,"ath":0.00013848,"ath_change_perce'
|
|
||||||
// 'ntage":-79.75864,"ath_date":"2021-12-11T08:39:41.129Z","atl":5.74'
|
|
||||||
// '028e-07,"atl_change_percentage":4783.08078,"atl_date":"2020-03-13T'
|
|
||||||
// '16:55:01.177Z","roi":null,"last_updated":"2022-08-22T16:38:32.826Z"}]',
|
|
||||||
// 200));
|
|
||||||
//
|
|
||||||
// final priceAPI = PriceAPI(client);
|
|
||||||
// priceAPI.resetLastCalledToForceNextCallToUpdateCache();
|
|
||||||
//
|
|
||||||
// final price = await priceAPI.getPricesAnd24hChange(baseCurrency: "btc");
|
|
||||||
//
|
|
||||||
// expect(
|
|
||||||
// price.toString(),
|
|
||||||
// '{Coin.bitcoin: [0, 0.0], Coin.bitcoincash: [0, 0.0], Coin.dogecoin: '
|
|
||||||
// '[0, 0.0], Coin.eCash: [0, 0.0], Coin.epicCash: [0, 0.0], Coin.ethereum: [0, 0.0],'
|
|
||||||
// ' Coin.firo: [0, 0.0], Coin.litecoin: [0, 0.0], Coin.monero: [0, 0.0],'
|
|
||||||
// ' Coin.namecoin: [0, 0.0], Coin.particl: [0, 0.0], Coin.wownero: [0, 0.0],'
|
|
||||||
// ' Coin.bitcoinTestNet: [0, 0.0], Coin.litecoinTestNet: [0, 0.0], '
|
|
||||||
// 'Coin.bitcoincashTestnet: [0, 0.0], Coin.dogecoinTestNet: [0, 0.0],'
|
|
||||||
// ' Coin.firoTestNet: [0, 0.0]}');
|
|
||||||
// });
|
|
||||||
|
|
||||||
// test("no internet available", () async {
|
final price = await priceAPI.getPricesAnd24hChange(baseCurrency: "btc");
|
||||||
// final client = MockClient();
|
|
||||||
//
|
expect(
|
||||||
// when(client.get(
|
price.toString(),
|
||||||
// Uri.parse(
|
'{'
|
||||||
// "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc"
|
'Coin.banano: [0, 0.0], '
|
||||||
// "&ids=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,"
|
'Coin.bitcoin: [1, 0.0], '
|
||||||
// "bitcoin-cash,namecoin,wownero,ethereum,particl"
|
'Coin.bitcoincash: [0, 0.0], '
|
||||||
// "&order=market_cap_desc&per_page=50&page=1&sparkline=false"),
|
'Coin.dogecoin: [0.00000315, -2.68533], '
|
||||||
// headers: {
|
'Coin.eCash: [0, 0.0], '
|
||||||
// 'Content-Type': 'application/json'
|
'Coin.epicCash: [0.00002803, 7.27524], '
|
||||||
// })).thenThrow(const SocketException(
|
'Coin.ethereum: [0, 0.0], '
|
||||||
// "Failed host lookup: 'api.com' (OS Error: Temporary failure in name resolution, errno = -3)"));
|
'Coin.firo: [0.0001096, -0.89304], '
|
||||||
//
|
'Coin.litecoin: [0, 0.0], '
|
||||||
// final priceAPI = PriceAPI(client);
|
'Coin.monero: [0.00717236, -0.77656], '
|
||||||
// priceAPI.resetLastCalledToForceNextCallToUpdateCache();
|
'Coin.namecoin: [0, 0.0], '
|
||||||
//
|
'Coin.nano: [0, 0.0], '
|
||||||
// final price = await priceAPI.getPricesAnd24hChange(baseCurrency: "btc");
|
'Coin.particl: [0, 0.0], '
|
||||||
//
|
'Coin.wownero: [0, 0.0], '
|
||||||
// expect(
|
'Coin.bitcoinTestNet: [0, 0.0], '
|
||||||
// price.toString(),
|
'Coin.bitcoincashTestnet: [0, 0.0], '
|
||||||
// '{Coin.bitcoin: [0, 0.0], Coin.bitcoincash: [0, 0.0], '
|
'Coin.dogecoinTestNet: [0, 0.0], '
|
||||||
// 'Coin.dogecoin: [0, 0.0], Coin.eCash: [0, 0.0], Coin.epicCash: [0, 0.0], Coin.ethereum: [0, 0.0],'
|
'Coin.firoTestNet: [0, 0.0], '
|
||||||
// ' Coin.firo: [0, 0.0], Coin.litecoin: [0, 0.0], Coin.monero: [0, 0.0],'
|
'Coin.litecoinTestNet: [0, 0.0]'
|
||||||
// ' Coin.namecoin: [0, 0.0], Coin.particl: [0, 0.0], Coin.wownero: [0, 0.0],'
|
'}',
|
||||||
// ' Coin.bitcoinTestNet: [0, 0.0], Coin.litecoinTestNet: [0, 0.0], '
|
);
|
||||||
// 'Coin.bitcoincashTestnet: [0, 0.0], Coin.dogecoinTestNet: [0, 0.0], '
|
verify(client.get(
|
||||||
// 'Coin.firoTestNet: [0, 0.0]}');
|
Uri.parse(
|
||||||
// });
|
"https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc"
|
||||||
|
"&ids=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,"
|
||||||
|
"bitcoin-cash,namecoin,wownero,ethereum,particl,nano,ban"
|
||||||
|
"&order=market_cap_desc&per_page=50&page=1&sparkline=false",
|
||||||
|
),
|
||||||
|
headers: {'Content-Type': 'application/json'})).called(1);
|
||||||
|
|
||||||
|
verifyNoMoreInteractions(client);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("cached price fetch", () async {
|
||||||
|
final client = MockClient();
|
||||||
|
|
||||||
|
when(client.get(
|
||||||
|
Uri.parse(
|
||||||
|
"https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&"
|
||||||
|
"ids=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,"
|
||||||
|
"bitcoin-cash,namecoin,wownero,ethereum,particl,nano,ban"
|
||||||
|
"&order=market_cap_desc&per_page=50&page=1&sparkline=false"),
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
})).thenAnswer((_) async => Response(
|
||||||
|
'[{"id":"bitcoin","symbol":"btc","name":"Bitcoin","image":"https://a'
|
||||||
|
'ssets.coingecko.com/coins/images/1/large/bitcoin.png?1547033579","c'
|
||||||
|
'urrent_price":1.0,"market_cap":19128800,"market_cap_rank":1,"fully_'
|
||||||
|
'diluted_valuation":21000000,"total_volume":1272132,"high_24h":1.0,"'
|
||||||
|
'low_24h":1.0,"price_change_24h":0.0,"price_change_percentage_24h":0'
|
||||||
|
'.0,"market_cap_change_24h":950.0,"market_cap_change_percentage_24h"'
|
||||||
|
':0.00497,"circulating_supply":19128800.0,"total_supply":21000000.0,"'
|
||||||
|
'max_supply":21000000.0,"ath":1.003301,"ath_change_percentage":-0.32'
|
||||||
|
'896,"ath_date":"2019-10-15T16:00:56.136Z","atl":0.99895134,"atl_cha'
|
||||||
|
'nge_percentage":0.10498,"atl_date":"2019-10-21T00:00:00.000Z","roi"'
|
||||||
|
':null,"last_updated":"2022-08-22T16:37:59.237Z"},{"id":"dogecoin","'
|
||||||
|
'symbol":"doge","name":"Dogecoin","image":"https://assets.coingecko.'
|
||||||
|
'com/coins/images/5/large/dogecoin.png?1547792256","current_price":3'
|
||||||
|
'.15e-06,"market_cap":417916,"market_cap_rank":10,"fully_diluted_val'
|
||||||
|
'uation":null,"total_volume":27498,"high_24h":3.26e-06,"low_24h":3.1'
|
||||||
|
'3e-06,"price_change_24h":-8.6889947714e-08,"price_change_percentage'
|
||||||
|
'_24h":-2.68533,"market_cap_change_24h":-11370.894861206936,"market_'
|
||||||
|
'cap_change_percentage_24h":-2.64879,"circulating_supply":1326707642'
|
||||||
|
'99.894,"total_supply":null,"max_supply":null,"ath":1.264e-05,"ath_c'
|
||||||
|
'hange_percentage":-75.05046,"ath_date":"2021-05-07T23:04:53.026Z","'
|
||||||
|
'atl":1.50936e-07,"atl_change_percentage":1989.69346,"atl_date":"202'
|
||||||
|
'0-12-17T09:18:05.654Z","roi":null,"last_updated":"2022-08-22T16:38:'
|
||||||
|
'15.113Z"},{"id":"monero","symbol":"xmr","name":"Monero","image":"ht'
|
||||||
|
'tps://assets.coingecko.com/coins/images/69/large/monero_logo.png?15'
|
||||||
|
'47033729","current_price":0.00717236,"market_cap":130002,"market_cap'
|
||||||
|
'_rank":29,"fully_diluted_valuation":null,"total_volume":4901,"high'
|
||||||
|
'_24h":0.00731999,"low_24h":0.00707511,"price_change_24h":-5.613354'
|
||||||
|
'3212467e-05,"price_change_percentage_24h":-0.77656,"market_cap_chan'
|
||||||
|
'ge_24h":-1007.8447677436197,"market_cap_change_percentage_24h":-0.7'
|
||||||
|
'6929,"circulating_supply":18147820.3764146,"total_supply":null,"ma'
|
||||||
|
'x_supply":null,"ath":0.03475393,"ath_change_percentage":-79.32037,"'
|
||||||
|
'ath_date":"2018-01-09T00:00:00.000Z","atl":0.00101492,"atl_change_'
|
||||||
|
'percentage":608.13327,"atl_date":"2014-12-18T00:00:00.000Z","roi":n'
|
||||||
|
'ull,"last_updated":"2022-08-22T16:38:26.347Z"},{"id":"zcoin","symbo'
|
||||||
|
'l":"firo","name":"Firo","image":"https://assets.coingecko.com/coins'
|
||||||
|
'/images/479/large/firocoingecko.png?1636537544","current_price":0.0'
|
||||||
|
'001096,"market_cap":1252,"market_cap_rank":604,"fully_diluted_valu'
|
||||||
|
'ation":2349,"total_volume":90.573,"high_24h":0.00011148,"low_24h":0'
|
||||||
|
'.00010834,"price_change_24h":-9.87561775002e-07,"price_change_perce'
|
||||||
|
'ntage_24h":-0.89304,"market_cap_change_24h":-10.046635178462793,"ma'
|
||||||
|
'rket_cap_change_percentage_24h":-0.79578,"circulating_supply":11411'
|
||||||
|
'043.8354697,"total_supply":21400000.0,"max_supply":21400000.0,"ath"'
|
||||||
|
':0.01616272,"ath_change_percentage":-99.3208,"ath_date":"2018-04-04'
|
||||||
|
'T16:04:48.408Z","atl":4.268e-05,"atl_change_percentage":157.22799,'
|
||||||
|
'"atl_date":"2022-05-12T07:28:47.088Z","roi":null,"last_updated":"2'
|
||||||
|
'022-08-22T16:38:47.229Z"},{"id":"epic-cash","symbol":"epic","name":"'
|
||||||
|
'Epic Cash","image":"https://assets.coingecko.com/coins/images/9520/'
|
||||||
|
'large/Epic_Coin_NO_drop_shadow.png?1620122642","current_price":2.80'
|
||||||
|
'3e-05,"market_cap":415.109,"market_cap_rank":953,"fully_diluted_val'
|
||||||
|
'uation":null,"total_volume":0.2371557,"high_24h":3.053e-05,"low_24h'
|
||||||
|
'":2.581e-05,"price_change_24h":1.9e-06,"price_change_percentage_24'
|
||||||
|
'h":7.27524,"market_cap_change_24h":28.26753,"market_cap_change_perc'
|
||||||
|
'entage_24h":7.30726,"circulating_supply":14808052.0,"total_supply":'
|
||||||
|
'21000000.0,"max_supply":null,"ath":0.00013848,"ath_change_percentag'
|
||||||
|
'e":-79.75864,"ath_date":"2021-12-11T08:39:41.129Z","atl":5.74028e-0'
|
||||||
|
'7,"atl_change_percentage":4783.08078,"atl_date":"2020-03-13T16:55:01'
|
||||||
|
'.177Z","roi":null,"last_updated":"2022-08-22T16:38:32.826Z"}]',
|
||||||
|
200));
|
||||||
|
|
||||||
|
final priceAPI = PriceAPI(client);
|
||||||
|
priceAPI.resetLastCalledToForceNextCallToUpdateCache();
|
||||||
|
|
||||||
|
// initial fetch to fill cache
|
||||||
|
await priceAPI.getPricesAnd24hChange(baseCurrency: "btc");
|
||||||
|
|
||||||
|
// now this time it should grab from cache instead of http.get
|
||||||
|
final cachedPrice =
|
||||||
|
await priceAPI.getPricesAnd24hChange(baseCurrency: "btc");
|
||||||
|
|
||||||
|
expect(
|
||||||
|
cachedPrice.toString(),
|
||||||
|
'{'
|
||||||
|
'Coin.banano: [0, 0.0], '
|
||||||
|
'Coin.bitcoin: [1, 0.0], '
|
||||||
|
'Coin.bitcoincash: [0, 0.0], '
|
||||||
|
'Coin.dogecoin: [0.00000315, -2.68533], '
|
||||||
|
'Coin.eCash: [0, 0.0], '
|
||||||
|
'Coin.epicCash: [0.00002803, 7.27524], '
|
||||||
|
'Coin.ethereum: [0, 0.0], '
|
||||||
|
'Coin.firo: [0.0001096, -0.89304], '
|
||||||
|
'Coin.litecoin: [0, 0.0], '
|
||||||
|
'Coin.monero: [0.00717236, -0.77656], '
|
||||||
|
'Coin.namecoin: [0, 0.0], '
|
||||||
|
'Coin.nano: [0, 0.0], '
|
||||||
|
'Coin.particl: [0, 0.0], '
|
||||||
|
'Coin.wownero: [0, 0.0], '
|
||||||
|
'Coin.bitcoinTestNet: [0, 0.0], '
|
||||||
|
'Coin.bitcoincashTestnet: [0, 0.0], '
|
||||||
|
'Coin.dogecoinTestNet: [0, 0.0], '
|
||||||
|
'Coin.firoTestNet: [0, 0.0], '
|
||||||
|
'Coin.litecoinTestNet: [0, 0.0]'
|
||||||
|
'}',
|
||||||
|
);
|
||||||
|
|
||||||
|
// verify only called once during filling of cache
|
||||||
|
verify(client.get(
|
||||||
|
Uri.parse(
|
||||||
|
"https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids"
|
||||||
|
"=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,"
|
||||||
|
"bitcoin-cash,namecoin,wownero,ethereum,particl,nano,ban"
|
||||||
|
"&order=market_cap_desc&per_page=50&page=1&sparkline=false"),
|
||||||
|
headers: {'Content-Type': 'application/json'})).called(1);
|
||||||
|
|
||||||
|
verifyNoMoreInteractions(client);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("response parse failure", () async {
|
||||||
|
final client = MockClient();
|
||||||
|
|
||||||
|
when(client.get(
|
||||||
|
Uri.parse(
|
||||||
|
"https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc"
|
||||||
|
"&ids=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,"
|
||||||
|
"bitcoin-cash,namecoin,wownero,ethereum,particl,nano,ban"
|
||||||
|
"&order=market_cap_desc&per_page=50&page=1&sparkline=false"),
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
})).thenAnswer((_) async => Response(
|
||||||
|
'[{"id":"bitcoin","symbol":"btc","name":com/coins/images/1/large/'
|
||||||
|
'bitcoin.png?1547033579","current_price":1.0,"market_cap":19128800'
|
||||||
|
',"market_cap_rank":1,"fully_diluted_valuation":21000000,"total_volum'
|
||||||
|
'e":1272132,"high_24h":1.0,"low_24h":1.0,"price_change_24h":0.0,"pri'
|
||||||
|
'ce_change_percentage_24h":0.0,"market_cap_change_24h":950.0,"market_'
|
||||||
|
'cap_change_percentage_24h":0.00497,"circulating_supply":19128800.0,"t'
|
||||||
|
'otal_supply":21000000.0,"max_supply":21000000.0,"ath":1.003301,"ath'
|
||||||
|
'_change_percentage":-0.32896,"ath_date":"2019-10-15T16:00:56.136Z",'
|
||||||
|
'"atl":0.99895134,"atl_change_percentage":0.10498,"atl_date":'
|
||||||
|
'"2019-10-21T00:00:00.000Z","roi":null,'
|
||||||
|
'"last_updated":"2022-08-22T16:37:59.237Z"},{"id":"dogecoin"'
|
||||||
|
',"symbol":"doge","name":"Dogecoin","image":'
|
||||||
|
'"https://assets.coingecko.com/coins/images/5/large/dogecoin.png?1547792256",'
|
||||||
|
'"current_price":3.15e-06,"market_cap":417916,"market_cap_rank":10'
|
||||||
|
',"fully_diluted_valuation":null,"total_volume":27498,"high_24h":3'
|
||||||
|
'.26e-06,"low_24h":3.13e-06,"price_change_24h":-8.6889947714e-08,"'
|
||||||
|
'price_change_percentage_24h":-2.68533,"market_cap_change_24h":-11'
|
||||||
|
'370.894861206936,"market_cap_change_percentage_24h":-2.64879,"cir'
|
||||||
|
'culating_supply":132670764299.894,"total_supply":null,"max_supply'
|
||||||
|
'":null,"ath":1.264e-05,"ath_change_percentage":-75.05046,"ath_date'
|
||||||
|
'":"2021-05-07T23:04:53.026Z","atl":1.50936e-07,"atl_change_percen'
|
||||||
|
'tage":1989.69346,"atl_date":"2020-12-17T09:18:05.654Z","roi":null,'
|
||||||
|
'"last_updated":"2022-08-22T16:38:15.113Z"},{"id":"monero","symbol"'
|
||||||
|
':"xmr","name":"Monero","image":"https://assets.coingecko.com/coins'
|
||||||
|
'/images/69/large/monero_logo.png?1547033729","current_price":0.007'
|
||||||
|
'17236,"market_cap":130002,"market_cap_rank":29,"fully_diluted_valu'
|
||||||
|
'ation":null,"total_volume":4901,"high_24h":0.00731999,"low_24h":0.'
|
||||||
|
'00707511,"price_change_24h":-5.6133543212467e-05,"price_change_per'
|
||||||
|
'centage_24h":-0.77656,"market_cap_change_24h":-1007.8447677436197'
|
||||||
|
',"market_cap_change_percentage_24h":-0.76929,"circulating_supply":'
|
||||||
|
'18147820.3764146,"total_supply":null,"max_supply":null,"ath":0.034'
|
||||||
|
'75393,"ath_change_percentage":-79.32037,"ath_date":"2018-01-09T00:'
|
||||||
|
'00:00.000Z","atl":0.00101492,"atl_change_percentage":608.13327,"at'
|
||||||
|
'l_date":"2014-12-18T00:00:00.000Z","roi":null,"last_updated":"2022'
|
||||||
|
'-08-22T16:38:26.347Z"},{"id":"zcoin","symbol":"firo","name":"Firo"'
|
||||||
|
',"image":"https://assets.coingecko.com/coins/images/479/large/firo'
|
||||||
|
'coingecko.png?1636537544","current_price":0.0001096,"market_cap":1'
|
||||||
|
'252,"market_cap_rank":604,"fully_diluted_valuation":2349,"total_vo'
|
||||||
|
'lume":90.573,"high_24h":0.00011148,"low_24h":0.00010834,"price_chang'
|
||||||
|
'e_24h":-9.87561775002e-07,"price_change_percentage_24h":-0.89304,'
|
||||||
|
'"market_cap_change_24h":-10.046635178462793,"market_cap_change_per'
|
||||||
|
'centage_24h":-0.79578,"circulating_supply":11411043.8354697,"tota'
|
||||||
|
'l_supply":21400000.0,"max_supply":21400000.0,"ath":0.01616272,"ath'
|
||||||
|
'_change_percentage":-99.3208,"ath_date":"2018-04-04T16:04:48.408Z"'
|
||||||
|
',"atl":4.268e-05,"atl_change_percentage":157.22799,"atl_date":"202'
|
||||||
|
'2-05-12T07:28:47.088Z","roi":null,"last_updated":"2022-08-22T16:3'
|
||||||
|
'8:47.229Z"},{"id":"epic-cash","symbol":"epic","name":"Epic Cash",'
|
||||||
|
'"image":"https://assets.coingecko.com/coins/images/9520/large/'
|
||||||
|
'Epic_Coin_NO_drop_shadow.png?1620122642","current_price":2.803e-0'
|
||||||
|
'5,"market_cap":415.109,"market_cap_rank":953,"fully_diluted_valuat'
|
||||||
|
'ion":null,"total_volume":0.2371557,"high_24h":3.053e-05,"low_24h":'
|
||||||
|
'2.581e-05,"price_change_24h":1.9e-06,"price_change_percentage_24h"'
|
||||||
|
':7.27524,"market_cap_change_24h":28.26753,"market_cap_change_per'
|
||||||
|
'centage_24h":7.30726,"circulating_supply":14808052.0,"total_suppl'
|
||||||
|
'y":21000000.0,"max_supply":null,"ath":0.00013848,"ath_change_perce'
|
||||||
|
'ntage":-79.75864,"ath_date":"2021-12-11T08:39:41.129Z","atl":5.74'
|
||||||
|
'028e-07,"atl_change_percentage":4783.08078,"atl_date":"2020-03-13T'
|
||||||
|
'16:55:01.177Z","roi":null,"last_updated":"2022-08-22T16:38:32.826Z"}]',
|
||||||
|
200));
|
||||||
|
|
||||||
|
final priceAPI = PriceAPI(client);
|
||||||
|
priceAPI.resetLastCalledToForceNextCallToUpdateCache();
|
||||||
|
|
||||||
|
final price = await priceAPI.getPricesAnd24hChange(baseCurrency: "btc");
|
||||||
|
|
||||||
|
expect(
|
||||||
|
price.toString(),
|
||||||
|
'{'
|
||||||
|
'Coin.banano: [0, 0.0], '
|
||||||
|
'Coin.bitcoin: [0, 0.0], '
|
||||||
|
'Coin.bitcoincash: [0, 0.0], '
|
||||||
|
'Coin.dogecoin: [0, 0.0], '
|
||||||
|
'Coin.eCash: [0, 0.0], '
|
||||||
|
'Coin.epicCash: [0, 0.0], '
|
||||||
|
'Coin.ethereum: [0, 0.0], '
|
||||||
|
'Coin.firo: [0, 0.0], '
|
||||||
|
'Coin.litecoin: [0, 0.0], '
|
||||||
|
'Coin.monero: [0, 0.0], '
|
||||||
|
'Coin.namecoin: [0, 0.0], '
|
||||||
|
'Coin.nano: [0, 0.0], '
|
||||||
|
'Coin.particl: [0, 0.0], '
|
||||||
|
'Coin.wownero: [0, 0.0], '
|
||||||
|
'Coin.bitcoinTestNet: [0, 0.0], '
|
||||||
|
'Coin.bitcoincashTestnet: [0, 0.0], '
|
||||||
|
'Coin.dogecoinTestNet: [0, 0.0], '
|
||||||
|
'Coin.firoTestNet: [0, 0.0], '
|
||||||
|
'Coin.litecoinTestNet: [0, 0.0]'
|
||||||
|
'}',
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("no internet available", () async {
|
||||||
|
final client = MockClient();
|
||||||
|
|
||||||
|
when(client.get(
|
||||||
|
Uri.parse(
|
||||||
|
"https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc"
|
||||||
|
"&ids=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin,"
|
||||||
|
"bitcoin-cash,namecoin,wownero,ethereum,particl,nano,ban"
|
||||||
|
"&order=market_cap_desc&per_page=50&page=1&sparkline=false"),
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
})).thenThrow(const SocketException(
|
||||||
|
"Failed host lookup: 'api.com' (OS Error: Temporary failure in name resolution, errno = -3)"));
|
||||||
|
|
||||||
|
final priceAPI = PriceAPI(client);
|
||||||
|
priceAPI.resetLastCalledToForceNextCallToUpdateCache();
|
||||||
|
|
||||||
|
final price = await priceAPI.getPricesAnd24hChange(baseCurrency: "btc");
|
||||||
|
|
||||||
|
expect(
|
||||||
|
price.toString(),
|
||||||
|
'{'
|
||||||
|
'Coin.banano: [0, 0.0], '
|
||||||
|
'Coin.bitcoin: [0, 0.0], '
|
||||||
|
'Coin.bitcoincash: [0, 0.0], '
|
||||||
|
'Coin.dogecoin: [0, 0.0], '
|
||||||
|
'Coin.eCash: [0, 0.0], '
|
||||||
|
'Coin.epicCash: [0, 0.0], '
|
||||||
|
'Coin.ethereum: [0, 0.0], '
|
||||||
|
'Coin.firo: [0, 0.0], '
|
||||||
|
'Coin.litecoin: [0, 0.0], '
|
||||||
|
'Coin.monero: [0, 0.0], '
|
||||||
|
'Coin.namecoin: [0, 0.0], '
|
||||||
|
'Coin.nano: [0, 0.0], '
|
||||||
|
'Coin.particl: [0, 0.0], '
|
||||||
|
'Coin.wownero: [0, 0.0], '
|
||||||
|
'Coin.bitcoinTestNet: [0, 0.0], '
|
||||||
|
'Coin.bitcoincashTestnet: [0, 0.0], '
|
||||||
|
'Coin.dogecoinTestNet: [0, 0.0], '
|
||||||
|
'Coin.firoTestNet: [0, 0.0], '
|
||||||
|
'Coin.litecoinTestNet: [0, 0.0]'
|
||||||
|
'}',
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
tearDown(() async {
|
tearDown(() async {
|
||||||
await tearDownTestHive();
|
await tearDownTestHive();
|
||||||
|
|
|
@ -269,7 +269,7 @@ class MockManager extends _i1.Mock implements _i12.Manager {
|
||||||
@override
|
@override
|
||||||
_i13.Coin get coin => (super.noSuchMethod(
|
_i13.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i13.Coin.bitcoin,
|
returnValue: _i13.Coin.banano,
|
||||||
) as _i13.Coin);
|
) as _i13.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -230,7 +230,7 @@ class MockManager extends _i1.Mock implements _i10.Manager {
|
||||||
@override
|
@override
|
||||||
_i11.Coin get coin => (super.noSuchMethod(
|
_i11.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i11.Coin.bitcoin,
|
returnValue: _i11.Coin.banano,
|
||||||
) as _i11.Coin);
|
) as _i11.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -228,7 +228,7 @@ class MockManager extends _i1.Mock implements _i10.Manager {
|
||||||
@override
|
@override
|
||||||
_i11.Coin get coin => (super.noSuchMethod(
|
_i11.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i11.Coin.bitcoin,
|
returnValue: _i11.Coin.banano,
|
||||||
) as _i11.Coin);
|
) as _i11.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -548,7 +548,7 @@ class MockManager extends _i1.Mock implements _i13.Manager {
|
||||||
@override
|
@override
|
||||||
_i9.Coin get coin => (super.noSuchMethod(
|
_i9.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i9.Coin.bitcoin,
|
returnValue: _i9.Coin.banano,
|
||||||
) as _i9.Coin);
|
) as _i9.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -335,7 +335,7 @@ class MockManager extends _i1.Mock implements _i10.Manager {
|
||||||
@override
|
@override
|
||||||
_i8.Coin get coin => (super.noSuchMethod(
|
_i8.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i8.Coin.bitcoin,
|
returnValue: _i8.Coin.banano,
|
||||||
) as _i8.Coin);
|
) as _i8.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -335,7 +335,7 @@ class MockManager extends _i1.Mock implements _i10.Manager {
|
||||||
@override
|
@override
|
||||||
_i8.Coin get coin => (super.noSuchMethod(
|
_i8.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i8.Coin.bitcoin,
|
returnValue: _i8.Coin.banano,
|
||||||
) as _i8.Coin);
|
) as _i8.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -335,7 +335,7 @@ class MockManager extends _i1.Mock implements _i10.Manager {
|
||||||
@override
|
@override
|
||||||
_i8.Coin get coin => (super.noSuchMethod(
|
_i8.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i8.Coin.bitcoin,
|
returnValue: _i8.Coin.banano,
|
||||||
) as _i8.Coin);
|
) as _i8.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -102,7 +102,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i7.Coin get coin => (super.noSuchMethod(
|
_i7.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i7.Coin.bitcoin,
|
returnValue: _i7.Coin.banano,
|
||||||
) as _i7.Coin);
|
) as _i7.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -333,7 +333,7 @@ class MockManager extends _i1.Mock implements _i10.Manager {
|
||||||
@override
|
@override
|
||||||
_i8.Coin get coin => (super.noSuchMethod(
|
_i8.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i8.Coin.bitcoin,
|
returnValue: _i8.Coin.banano,
|
||||||
) as _i8.Coin);
|
) as _i8.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -548,7 +548,7 @@ class MockManager extends _i1.Mock implements _i13.Manager {
|
||||||
@override
|
@override
|
||||||
_i9.Coin get coin => (super.noSuchMethod(
|
_i9.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i9.Coin.bitcoin,
|
returnValue: _i9.Coin.banano,
|
||||||
) as _i9.Coin);
|
) as _i9.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -389,7 +389,7 @@ class MockManager extends _i1.Mock implements _i13.Manager {
|
||||||
@override
|
@override
|
||||||
_i11.Coin get coin => (super.noSuchMethod(
|
_i11.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i11.Coin.bitcoin,
|
returnValue: _i11.Coin.banano,
|
||||||
) as _i11.Coin);
|
) as _i11.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -102,7 +102,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i7.Coin get coin => (super.noSuchMethod(
|
_i7.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i7.Coin.bitcoin,
|
returnValue: _i7.Coin.banano,
|
||||||
) as _i7.Coin);
|
) as _i7.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -102,7 +102,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i7.Coin get coin => (super.noSuchMethod(
|
_i7.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i7.Coin.bitcoin,
|
returnValue: _i7.Coin.banano,
|
||||||
) as _i7.Coin);
|
) as _i7.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -317,7 +317,7 @@ class MockManager extends _i1.Mock implements _i12.Manager {
|
||||||
@override
|
@override
|
||||||
_i10.Coin get coin => (super.noSuchMethod(
|
_i10.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i10.Coin.bitcoin,
|
returnValue: _i10.Coin.banano,
|
||||||
) as _i10.Coin);
|
) as _i10.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -317,7 +317,7 @@ class MockManager extends _i1.Mock implements _i12.Manager {
|
||||||
@override
|
@override
|
||||||
_i10.Coin get coin => (super.noSuchMethod(
|
_i10.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i10.Coin.bitcoin,
|
returnValue: _i10.Coin.banano,
|
||||||
) as _i10.Coin);
|
) as _i10.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -102,7 +102,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i7.Coin get coin => (super.noSuchMethod(
|
_i7.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i7.Coin.bitcoin,
|
returnValue: _i7.Coin.banano,
|
||||||
) as _i7.Coin);
|
) as _i7.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -102,7 +102,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i7.Coin get coin => (super.noSuchMethod(
|
_i7.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i7.Coin.bitcoin,
|
returnValue: _i7.Coin.banano,
|
||||||
) as _i7.Coin);
|
) as _i7.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -333,7 +333,7 @@ class MockManager extends _i1.Mock implements _i10.Manager {
|
||||||
@override
|
@override
|
||||||
_i8.Coin get coin => (super.noSuchMethod(
|
_i8.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i8.Coin.bitcoin,
|
returnValue: _i8.Coin.banano,
|
||||||
) as _i8.Coin);
|
) as _i8.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -569,7 +569,7 @@ class MockManager extends _i1.Mock implements _i15.Manager {
|
||||||
@override
|
@override
|
||||||
_i9.Coin get coin => (super.noSuchMethod(
|
_i9.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i9.Coin.bitcoin,
|
returnValue: _i9.Coin.banano,
|
||||||
) as _i9.Coin);
|
) as _i9.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -333,7 +333,7 @@ class MockManager extends _i1.Mock implements _i10.Manager {
|
||||||
@override
|
@override
|
||||||
_i8.Coin get coin => (super.noSuchMethod(
|
_i8.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i8.Coin.bitcoin,
|
returnValue: _i8.Coin.banano,
|
||||||
) as _i8.Coin);
|
) as _i8.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -104,7 +104,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i7.Coin get coin => (super.noSuchMethod(
|
_i7.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i7.Coin.bitcoin,
|
returnValue: _i7.Coin.banano,
|
||||||
) as _i7.Coin);
|
) as _i7.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -103,7 +103,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i7.Coin get coin => (super.noSuchMethod(
|
_i7.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i7.Coin.bitcoin,
|
returnValue: _i7.Coin.banano,
|
||||||
) as _i7.Coin);
|
) as _i7.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -102,7 +102,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i7.Coin get coin => (super.noSuchMethod(
|
_i7.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i7.Coin.bitcoin,
|
returnValue: _i7.Coin.banano,
|
||||||
) as _i7.Coin);
|
) as _i7.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -144,7 +144,7 @@ class MockManager extends _i1.Mock implements _i9.Manager {
|
||||||
@override
|
@override
|
||||||
_i10.Coin get coin => (super.noSuchMethod(
|
_i10.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i10.Coin.bitcoin,
|
returnValue: _i10.Coin.banano,
|
||||||
) as _i10.Coin);
|
) as _i10.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -104,7 +104,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i7.Coin get coin => (super.noSuchMethod(
|
_i7.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i7.Coin.bitcoin,
|
returnValue: _i7.Coin.banano,
|
||||||
) as _i7.Coin);
|
) as _i7.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -217,7 +217,7 @@ class MockFiroWallet extends _i1.Mock implements _i10.FiroWallet {
|
||||||
@override
|
@override
|
||||||
_i12.Coin get coin => (super.noSuchMethod(
|
_i12.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i12.Coin.bitcoin,
|
returnValue: _i12.Coin.banano,
|
||||||
) as _i12.Coin);
|
) as _i12.Coin);
|
||||||
@override
|
@override
|
||||||
_i11.Future<List<String>> get mnemonic => (super.noSuchMethod(
|
_i11.Future<List<String>> get mnemonic => (super.noSuchMethod(
|
||||||
|
|
|
@ -17,8 +17,10 @@ import 'package:stackwallet/services/wallets_service.dart';
|
||||||
import 'package:stackwallet/themes/stack_colors.dart';
|
import 'package:stackwallet/themes/stack_colors.dart';
|
||||||
import 'package:stackwallet/themes/theme_service.dart';
|
import 'package:stackwallet/themes/theme_service.dart';
|
||||||
import 'package:stackwallet/utilities/amount/amount.dart';
|
import 'package:stackwallet/utilities/amount/amount.dart';
|
||||||
|
import 'package:stackwallet/utilities/amount/amount_unit.dart';
|
||||||
import 'package:stackwallet/utilities/enums/coin_enum.dart';
|
import 'package:stackwallet/utilities/enums/coin_enum.dart';
|
||||||
import 'package:stackwallet/utilities/listenable_list.dart';
|
import 'package:stackwallet/utilities/listenable_list.dart';
|
||||||
|
import 'package:stackwallet/utilities/prefs.dart';
|
||||||
import 'package:stackwallet/widgets/managed_favorite.dart';
|
import 'package:stackwallet/widgets/managed_favorite.dart';
|
||||||
|
|
||||||
import '../sample_data/theme_json.dart';
|
import '../sample_data/theme_json.dart';
|
||||||
|
@ -36,6 +38,7 @@ Amount _a(int i) => Amount.fromDecimal(
|
||||||
WalletsService,
|
WalletsService,
|
||||||
BitcoinWallet,
|
BitcoinWallet,
|
||||||
ThemeService,
|
ThemeService,
|
||||||
|
Prefs,
|
||||||
LocaleService
|
LocaleService
|
||||||
], customMocks: [
|
], customMocks: [
|
||||||
MockSpec<NodeService>(returnNullOnMissingStub: true),
|
MockSpec<NodeService>(returnNullOnMissingStub: true),
|
||||||
|
@ -47,6 +50,7 @@ void main() {
|
||||||
final wallets = MockWallets();
|
final wallets = MockWallets();
|
||||||
final CoinServiceAPI wallet = MockBitcoinWallet();
|
final CoinServiceAPI wallet = MockBitcoinWallet();
|
||||||
final mockThemeService = MockThemeService();
|
final mockThemeService = MockThemeService();
|
||||||
|
final mockPrefs = MockPrefs();
|
||||||
|
|
||||||
when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
||||||
(_) => StackTheme.fromJson(
|
(_) => StackTheme.fromJson(
|
||||||
|
@ -58,6 +62,13 @@ void main() {
|
||||||
when(wallet.walletName).thenAnswer((_) => "some wallet");
|
when(wallet.walletName).thenAnswer((_) => "some wallet");
|
||||||
when(wallet.walletId).thenAnswer((_) => "some wallet id");
|
when(wallet.walletId).thenAnswer((_) => "some wallet id");
|
||||||
|
|
||||||
|
when(mockPrefs.amountUnit(Coin.bitcoin)).thenAnswer(
|
||||||
|
(_) => AmountUnit.normal,
|
||||||
|
);
|
||||||
|
when(mockPrefs.maxDecimals(Coin.bitcoin)).thenAnswer(
|
||||||
|
(_) => 8,
|
||||||
|
);
|
||||||
|
|
||||||
final manager = Manager(wallet);
|
final manager = Manager(wallet);
|
||||||
when(wallets.getManager("some wallet id"))
|
when(wallets.getManager("some wallet id"))
|
||||||
.thenAnswer((realInvocation) => manager);
|
.thenAnswer((realInvocation) => manager);
|
||||||
|
@ -78,6 +89,7 @@ void main() {
|
||||||
overrides: [
|
overrides: [
|
||||||
walletsChangeNotifierProvider.overrideWithValue(wallets),
|
walletsChangeNotifierProvider.overrideWithValue(wallets),
|
||||||
pThemeService.overrideWithValue(mockThemeService),
|
pThemeService.overrideWithValue(mockThemeService),
|
||||||
|
prefsChangeNotifierProvider.overrideWithValue(mockPrefs),
|
||||||
],
|
],
|
||||||
child: MaterialApp(
|
child: MaterialApp(
|
||||||
theme: ThemeData(
|
theme: ThemeData(
|
||||||
|
@ -103,161 +115,179 @@ void main() {
|
||||||
expect(find.byType(ManagedFavorite), findsOneWidget);
|
expect(find.byType(ManagedFavorite), findsOneWidget);
|
||||||
});
|
});
|
||||||
|
|
||||||
// testWidgets("Button Pressed - wallet unfavorite", (widgetTester) async {
|
testWidgets("Button Pressed - wallet unfavorite", (widgetTester) async {
|
||||||
// final wallets = MockWallets();
|
final wallets = MockWallets();
|
||||||
// final CoinServiceAPI wallet = MockBitcoinWallet();
|
final CoinServiceAPI wallet = MockBitcoinWallet();
|
||||||
// final mockLocaleService = MockLocaleService();
|
final mockLocaleService = MockLocaleService();
|
||||||
// final mockWalletsService = MockWalletsService();
|
final mockWalletsService = MockWalletsService();
|
||||||
// final mockThemeService = MockThemeService();
|
final mockThemeService = MockThemeService();
|
||||||
//
|
final mockPrefs = MockPrefs();
|
||||||
// when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
|
||||||
// (_) => StackTheme.fromJson(
|
|
||||||
// json: lightThemeJsonMap,
|
|
||||||
// applicationThemesDirectoryPath: "test",
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
// when(wallet.coin).thenAnswer((_) => Coin.bitcoin);
|
|
||||||
// when(wallet.walletName).thenAnswer((_) => "some wallet");
|
|
||||||
// when(wallet.walletId).thenAnswer((_) => "some wallet id");
|
|
||||||
//
|
|
||||||
// final manager = Manager(wallet);
|
|
||||||
//
|
|
||||||
// when(wallets.getManager("some wallet id"))
|
|
||||||
// .thenAnswer((realInvocation) => manager);
|
|
||||||
// when(manager.balance).thenAnswer(
|
|
||||||
// (realInvocation) => Balance(
|
|
||||||
// total: _a(10),
|
|
||||||
// spendable: _a(10),
|
|
||||||
// blockedTotal: _a(0),
|
|
||||||
// pendingSpendable: _a(0),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
//
|
|
||||||
// when(manager.isFavorite).thenAnswer((realInvocation) => false);
|
|
||||||
//
|
|
||||||
// when(mockLocaleService.locale).thenAnswer((_) => "en_US");
|
|
||||||
//
|
|
||||||
// when(wallets.getManagerProvider("some wallet id")).thenAnswer(
|
|
||||||
// (realInvocation) => ChangeNotifierProvider((ref) => manager));
|
|
||||||
//
|
|
||||||
// const managedFavorite = ManagedFavorite(walletId: "some wallet id");
|
|
||||||
//
|
|
||||||
// final ListenableList<ChangeNotifierProvider<Manager>> favorites =
|
|
||||||
// ListenableList();
|
|
||||||
//
|
|
||||||
// final ListenableList<ChangeNotifierProvider<Manager>> nonfavorites =
|
|
||||||
// ListenableList();
|
|
||||||
// await widgetTester.pumpWidget(
|
|
||||||
// ProviderScope(
|
|
||||||
// overrides: [
|
|
||||||
// walletsChangeNotifierProvider.overrideWithValue(wallets),
|
|
||||||
// localeServiceChangeNotifierProvider
|
|
||||||
// .overrideWithValue(mockLocaleService),
|
|
||||||
// favoritesProvider.overrideWithValue(favorites),
|
|
||||||
// nonFavoritesProvider.overrideWithValue(nonfavorites),
|
|
||||||
// pThemeService.overrideWithValue(mockThemeService),
|
|
||||||
// walletsServiceChangeNotifierProvider
|
|
||||||
// .overrideWithValue(mockWalletsService)
|
|
||||||
// ],
|
|
||||||
// child: MaterialApp(
|
|
||||||
// theme: ThemeData(
|
|
||||||
// extensions: [
|
|
||||||
// StackColors.fromStackColorTheme(
|
|
||||||
// StackTheme.fromJson(
|
|
||||||
// json: lightThemeJsonMap,
|
|
||||||
// applicationThemesDirectoryPath: "test",
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// home: const Material(
|
|
||||||
// child: managedFavorite,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
//
|
|
||||||
// expect(find.byType(RawMaterialButton), findsOneWidget);
|
|
||||||
// await widgetTester.tap(find.byType(RawMaterialButton));
|
|
||||||
// await widgetTester.pump();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// testWidgets("Button Pressed - wallet is favorite", (widgetTester) async {
|
when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
||||||
// final wallets = MockWallets();
|
(_) => StackTheme.fromJson(
|
||||||
// final CoinServiceAPI wallet = MockBitcoinWallet();
|
json: lightThemeJsonMap,
|
||||||
// final mockLocaleService = MockLocaleService();
|
applicationThemesDirectoryPath: "test",
|
||||||
// final mockWalletsService = MockWalletsService();
|
),
|
||||||
// final mockThemeService = MockThemeService();
|
);
|
||||||
//
|
when(wallet.coin).thenAnswer((_) => Coin.bitcoin);
|
||||||
// when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
when(wallet.walletName).thenAnswer((_) => "some wallet");
|
||||||
// (_) => StackTheme.fromJson(
|
when(wallet.walletId).thenAnswer((_) => "some wallet id");
|
||||||
// json: lightThemeJsonMap,
|
when(mockPrefs.amountUnit(Coin.bitcoin)).thenAnswer(
|
||||||
// applicationThemesDirectoryPath: "test",
|
(_) => AmountUnit.normal,
|
||||||
// ),
|
);
|
||||||
// );
|
|
||||||
// when(wallet.coin).thenAnswer((_) => Coin.bitcoin);
|
final manager = Manager(wallet);
|
||||||
// when(wallet.walletName).thenAnswer((_) => "some wallet");
|
|
||||||
// when(wallet.walletId).thenAnswer((_) => "some wallet id");
|
when(wallets.getManager("some wallet id"))
|
||||||
//
|
.thenAnswer((realInvocation) => manager);
|
||||||
// final manager = Manager(wallet);
|
when(manager.balance).thenAnswer(
|
||||||
//
|
(realInvocation) => Balance(
|
||||||
// when(wallets.getManager("some wallet id"))
|
total: _a(10),
|
||||||
// .thenAnswer((realInvocation) => manager);
|
spendable: _a(10),
|
||||||
//
|
blockedTotal: _a(0),
|
||||||
// when(manager.isFavorite).thenAnswer((realInvocation) => true);
|
pendingSpendable: _a(0),
|
||||||
// when(manager.balance).thenAnswer(
|
),
|
||||||
// (realInvocation) => Balance(
|
);
|
||||||
// total: _a(10),
|
|
||||||
// spendable: _a(10),
|
when(manager.isFavorite).thenAnswer((realInvocation) => false);
|
||||||
// blockedTotal: _a(0),
|
|
||||||
// pendingSpendable: _a(0),
|
when(mockPrefs.maxDecimals(Coin.bitcoin)).thenAnswer(
|
||||||
// ),
|
(_) => 8,
|
||||||
// );
|
);
|
||||||
//
|
|
||||||
// when(mockLocaleService.locale).thenAnswer((_) => "en_US");
|
when(mockLocaleService.locale).thenAnswer((_) => "en_US");
|
||||||
//
|
|
||||||
// when(wallets.getManagerProvider("some wallet id")).thenAnswer(
|
when(wallets.getManagerProvider("some wallet id")).thenAnswer(
|
||||||
// (realInvocation) => ChangeNotifierProvider((ref) => manager));
|
(realInvocation) => ChangeNotifierProvider((ref) => manager));
|
||||||
//
|
|
||||||
// const managedFavorite = ManagedFavorite(walletId: "some wallet id");
|
const managedFavorite = ManagedFavorite(walletId: "some wallet id");
|
||||||
//
|
|
||||||
// final ListenableList<ChangeNotifierProvider<Manager>> favorites =
|
final ListenableList<ChangeNotifierProvider<Manager>> favorites =
|
||||||
// ListenableList();
|
ListenableList();
|
||||||
//
|
|
||||||
// final ListenableList<ChangeNotifierProvider<Manager>> nonfavorites =
|
final ListenableList<ChangeNotifierProvider<Manager>> nonfavorites =
|
||||||
// ListenableList();
|
ListenableList();
|
||||||
// await widgetTester.pumpWidget(
|
await widgetTester.pumpWidget(
|
||||||
// ProviderScope(
|
ProviderScope(
|
||||||
// overrides: [
|
overrides: [
|
||||||
// walletsChangeNotifierProvider.overrideWithValue(wallets),
|
walletsChangeNotifierProvider.overrideWithValue(wallets),
|
||||||
// localeServiceChangeNotifierProvider
|
localeServiceChangeNotifierProvider
|
||||||
// .overrideWithValue(mockLocaleService),
|
.overrideWithValue(mockLocaleService),
|
||||||
// favoritesProvider.overrideWithValue(favorites),
|
favoritesProvider.overrideWithValue(favorites),
|
||||||
// nonFavoritesProvider.overrideWithValue(nonfavorites),
|
nonFavoritesProvider.overrideWithValue(nonfavorites),
|
||||||
// pThemeService.overrideWithValue(mockThemeService),
|
pThemeService.overrideWithValue(mockThemeService),
|
||||||
// walletsServiceChangeNotifierProvider
|
walletsServiceChangeNotifierProvider
|
||||||
// .overrideWithValue(mockWalletsService)
|
.overrideWithValue(mockWalletsService),
|
||||||
// ],
|
prefsChangeNotifierProvider.overrideWithValue(mockPrefs),
|
||||||
// child: MaterialApp(
|
],
|
||||||
// theme: ThemeData(
|
child: MaterialApp(
|
||||||
// extensions: [
|
theme: ThemeData(
|
||||||
// StackColors.fromStackColorTheme(
|
extensions: [
|
||||||
// StackTheme.fromJson(
|
StackColors.fromStackColorTheme(
|
||||||
// json: lightThemeJsonMap,
|
StackTheme.fromJson(
|
||||||
// applicationThemesDirectoryPath: "test",
|
json: lightThemeJsonMap,
|
||||||
// ),
|
applicationThemesDirectoryPath: "test",
|
||||||
// ),
|
),
|
||||||
// ],
|
),
|
||||||
// ),
|
],
|
||||||
// home: const Material(
|
),
|
||||||
// child: managedFavorite,
|
home: const Material(
|
||||||
// ),
|
child: managedFavorite,
|
||||||
// ),
|
),
|
||||||
// ),
|
),
|
||||||
// );
|
),
|
||||||
//
|
);
|
||||||
// expect(find.byType(RawMaterialButton), findsOneWidget);
|
|
||||||
// await widgetTester.tap(find.byType(RawMaterialButton));
|
expect(find.byType(RawMaterialButton), findsOneWidget);
|
||||||
// await widgetTester.pump();
|
await widgetTester.tap(find.byType(RawMaterialButton));
|
||||||
// });
|
await widgetTester.pump();
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets("Button Pressed - wallet is favorite", (widgetTester) async {
|
||||||
|
final wallets = MockWallets();
|
||||||
|
final CoinServiceAPI wallet = MockBitcoinWallet();
|
||||||
|
final mockLocaleService = MockLocaleService();
|
||||||
|
final mockWalletsService = MockWalletsService();
|
||||||
|
final mockThemeService = MockThemeService();
|
||||||
|
final mockPrefs = MockPrefs();
|
||||||
|
|
||||||
|
when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
||||||
|
(_) => StackTheme.fromJson(
|
||||||
|
json: lightThemeJsonMap,
|
||||||
|
applicationThemesDirectoryPath: "test",
|
||||||
|
),
|
||||||
|
);
|
||||||
|
when(wallet.coin).thenAnswer((_) => Coin.bitcoin);
|
||||||
|
when(wallet.walletName).thenAnswer((_) => "some wallet");
|
||||||
|
when(wallet.walletId).thenAnswer((_) => "some wallet id");
|
||||||
|
|
||||||
|
when(mockPrefs.maxDecimals(Coin.bitcoin)).thenAnswer(
|
||||||
|
(_) => 8,
|
||||||
|
);
|
||||||
|
|
||||||
|
final manager = Manager(wallet);
|
||||||
|
|
||||||
|
when(wallets.getManager("some wallet id"))
|
||||||
|
.thenAnswer((realInvocation) => manager);
|
||||||
|
|
||||||
|
when(manager.isFavorite).thenAnswer((realInvocation) => true);
|
||||||
|
when(manager.balance).thenAnswer(
|
||||||
|
(realInvocation) => Balance(
|
||||||
|
total: _a(10),
|
||||||
|
spendable: _a(10),
|
||||||
|
blockedTotal: _a(0),
|
||||||
|
pendingSpendable: _a(0),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
when(mockPrefs.amountUnit(Coin.bitcoin)).thenAnswer(
|
||||||
|
(_) => AmountUnit.normal,
|
||||||
|
);
|
||||||
|
|
||||||
|
when(mockLocaleService.locale).thenAnswer((_) => "en_US");
|
||||||
|
|
||||||
|
when(wallets.getManagerProvider("some wallet id")).thenAnswer(
|
||||||
|
(realInvocation) => ChangeNotifierProvider((ref) => manager));
|
||||||
|
|
||||||
|
const managedFavorite = ManagedFavorite(walletId: "some wallet id");
|
||||||
|
|
||||||
|
final ListenableList<ChangeNotifierProvider<Manager>> favorites =
|
||||||
|
ListenableList();
|
||||||
|
|
||||||
|
final ListenableList<ChangeNotifierProvider<Manager>> nonfavorites =
|
||||||
|
ListenableList();
|
||||||
|
await widgetTester.pumpWidget(
|
||||||
|
ProviderScope(
|
||||||
|
overrides: [
|
||||||
|
walletsChangeNotifierProvider.overrideWithValue(wallets),
|
||||||
|
localeServiceChangeNotifierProvider
|
||||||
|
.overrideWithValue(mockLocaleService),
|
||||||
|
favoritesProvider.overrideWithValue(favorites),
|
||||||
|
nonFavoritesProvider.overrideWithValue(nonfavorites),
|
||||||
|
pThemeService.overrideWithValue(mockThemeService),
|
||||||
|
prefsChangeNotifierProvider.overrideWithValue(mockPrefs),
|
||||||
|
walletsServiceChangeNotifierProvider
|
||||||
|
.overrideWithValue(mockWalletsService)
|
||||||
|
],
|
||||||
|
child: MaterialApp(
|
||||||
|
theme: ThemeData(
|
||||||
|
extensions: [
|
||||||
|
StackColors.fromStackColorTheme(
|
||||||
|
StackTheme.fromJson(
|
||||||
|
json: lightThemeJsonMap,
|
||||||
|
applicationThemesDirectoryPath: "test",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
home: const Material(
|
||||||
|
child: managedFavorite,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.byType(RawMaterialButton), findsOneWidget);
|
||||||
|
await widgetTester.tap(find.byType(RawMaterialButton));
|
||||||
|
await widgetTester.pump();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,13 +21,13 @@ import 'package:stackwallet/electrumx_rpc/electrumx.dart' as _i9;
|
||||||
import 'package:stackwallet/models/balance.dart' as _i11;
|
import 'package:stackwallet/models/balance.dart' as _i11;
|
||||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i17;
|
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i17;
|
||||||
import 'package:stackwallet/models/isar/stack_theme.dart' as _i31;
|
import 'package:stackwallet/models/isar/stack_theme.dart' as _i31;
|
||||||
import 'package:stackwallet/models/node_model.dart' as _i33;
|
import 'package:stackwallet/models/node_model.dart' as _i36;
|
||||||
import 'package:stackwallet/models/paymint/fee_object_model.dart' as _i8;
|
import 'package:stackwallet/models/paymint/fee_object_model.dart' as _i8;
|
||||||
import 'package:stackwallet/models/signing_data.dart' as _i28;
|
import 'package:stackwallet/models/signing_data.dart' as _i28;
|
||||||
import 'package:stackwallet/services/coins/bitcoin/bitcoin_wallet.dart' as _i26;
|
import 'package:stackwallet/services/coins/bitcoin/bitcoin_wallet.dart' as _i26;
|
||||||
import 'package:stackwallet/services/coins/coin_service.dart' as _i20;
|
import 'package:stackwallet/services/coins/coin_service.dart' as _i20;
|
||||||
import 'package:stackwallet/services/coins/manager.dart' as _i6;
|
import 'package:stackwallet/services/coins/manager.dart' as _i6;
|
||||||
import 'package:stackwallet/services/locale_service.dart' as _i32;
|
import 'package:stackwallet/services/locale_service.dart' as _i35;
|
||||||
import 'package:stackwallet/services/node_service.dart' as _i3;
|
import 'package:stackwallet/services/node_service.dart' as _i3;
|
||||||
import 'package:stackwallet/services/transaction_notification_tracker.dart'
|
import 'package:stackwallet/services/transaction_notification_tracker.dart'
|
||||||
as _i7;
|
as _i7;
|
||||||
|
@ -35,8 +35,11 @@ import 'package:stackwallet/services/wallets.dart' as _i21;
|
||||||
import 'package:stackwallet/services/wallets_service.dart' as _i2;
|
import 'package:stackwallet/services/wallets_service.dart' as _i2;
|
||||||
import 'package:stackwallet/themes/theme_service.dart' as _i30;
|
import 'package:stackwallet/themes/theme_service.dart' as _i30;
|
||||||
import 'package:stackwallet/utilities/amount/amount.dart' as _i14;
|
import 'package:stackwallet/utilities/amount/amount.dart' as _i14;
|
||||||
|
import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i34;
|
||||||
|
import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i33;
|
||||||
import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i22;
|
import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i22;
|
||||||
import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart' as _i27;
|
import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart' as _i27;
|
||||||
|
import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i32;
|
||||||
import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'
|
import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'
|
||||||
as _i19;
|
as _i19;
|
||||||
import 'package:stackwallet/utilities/prefs.dart' as _i24;
|
import 'package:stackwallet/utilities/prefs.dart' as _i24;
|
||||||
|
@ -779,7 +782,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||||
|
@ -2055,10 +2058,488 @@ class MockThemeService extends _i1.Mock implements _i30.ThemeService {
|
||||||
)) as _i31.StackTheme?);
|
)) as _i31.StackTheme?);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// A class which mocks [Prefs].
|
||||||
|
///
|
||||||
|
/// See the documentation for Mockito's code generation for more information.
|
||||||
|
class MockPrefs extends _i1.Mock implements _i24.Prefs {
|
||||||
|
MockPrefs() {
|
||||||
|
_i1.throwOnMissingStub(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool get isInitialized => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#isInitialized),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
int get lastUnlockedTimeout => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#lastUnlockedTimeout),
|
||||||
|
returnValue: 0,
|
||||||
|
) as int);
|
||||||
|
@override
|
||||||
|
set lastUnlockedTimeout(int? lastUnlockedTimeout) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#lastUnlockedTimeout,
|
||||||
|
lastUnlockedTimeout,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
int get lastUnlocked => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#lastUnlocked),
|
||||||
|
returnValue: 0,
|
||||||
|
) as int);
|
||||||
|
@override
|
||||||
|
set lastUnlocked(int? lastUnlocked) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#lastUnlocked,
|
||||||
|
lastUnlocked,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
int get currentNotificationId => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#currentNotificationId),
|
||||||
|
returnValue: 0,
|
||||||
|
) as int);
|
||||||
|
@override
|
||||||
|
List<String> get walletIdsSyncOnStartup => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#walletIdsSyncOnStartup),
|
||||||
|
returnValue: <String>[],
|
||||||
|
) as List<String>);
|
||||||
|
@override
|
||||||
|
set walletIdsSyncOnStartup(List<String>? walletIdsSyncOnStartup) =>
|
||||||
|
super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#walletIdsSyncOnStartup,
|
||||||
|
walletIdsSyncOnStartup,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
_i32.SyncingType get syncType => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#syncType),
|
||||||
|
returnValue: _i32.SyncingType.currentWalletOnly,
|
||||||
|
) as _i32.SyncingType);
|
||||||
|
@override
|
||||||
|
set syncType(_i32.SyncingType? syncType) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#syncType,
|
||||||
|
syncType,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get wifiOnly => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#wifiOnly),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set wifiOnly(bool? wifiOnly) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#wifiOnly,
|
||||||
|
wifiOnly,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get showFavoriteWallets => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#showFavoriteWallets),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set showFavoriteWallets(bool? showFavoriteWallets) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#showFavoriteWallets,
|
||||||
|
showFavoriteWallets,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
String get language => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#language),
|
||||||
|
returnValue: '',
|
||||||
|
) as String);
|
||||||
|
@override
|
||||||
|
set language(String? newLanguage) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#language,
|
||||||
|
newLanguage,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
String get currency => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#currency),
|
||||||
|
returnValue: '',
|
||||||
|
) as String);
|
||||||
|
@override
|
||||||
|
set currency(String? newCurrency) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#currency,
|
||||||
|
newCurrency,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get randomizePIN => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#randomizePIN),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set randomizePIN(bool? randomizePIN) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#randomizePIN,
|
||||||
|
randomizePIN,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get useBiometrics => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#useBiometrics),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set useBiometrics(bool? useBiometrics) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#useBiometrics,
|
||||||
|
useBiometrics,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get hasPin => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#hasPin),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set hasPin(bool? hasPin) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#hasPin,
|
||||||
|
hasPin,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
int get familiarity => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#familiarity),
|
||||||
|
returnValue: 0,
|
||||||
|
) as int);
|
||||||
|
@override
|
||||||
|
set familiarity(int? familiarity) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#familiarity,
|
||||||
|
familiarity,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get showTestNetCoins => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#showTestNetCoins),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set showTestNetCoins(bool? showTestNetCoins) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#showTestNetCoins,
|
||||||
|
showTestNetCoins,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get isAutoBackupEnabled => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#isAutoBackupEnabled),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set isAutoBackupEnabled(bool? isAutoBackupEnabled) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#isAutoBackupEnabled,
|
||||||
|
isAutoBackupEnabled,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
set autoBackupLocation(String? autoBackupLocation) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#autoBackupLocation,
|
||||||
|
autoBackupLocation,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
_i33.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#backupFrequencyType),
|
||||||
|
returnValue: _i33.BackupFrequencyType.everyTenMinutes,
|
||||||
|
) as _i33.BackupFrequencyType);
|
||||||
|
@override
|
||||||
|
set backupFrequencyType(_i33.BackupFrequencyType? backupFrequencyType) =>
|
||||||
|
super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#backupFrequencyType,
|
||||||
|
backupFrequencyType,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
set lastAutoBackup(DateTime? lastAutoBackup) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#lastAutoBackup,
|
||||||
|
lastAutoBackup,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get hideBlockExplorerWarning => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#hideBlockExplorerWarning),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set hideBlockExplorerWarning(bool? hideBlockExplorerWarning) =>
|
||||||
|
super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#hideBlockExplorerWarning,
|
||||||
|
hideBlockExplorerWarning,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get gotoWalletOnStartup => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#gotoWalletOnStartup),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set gotoWalletOnStartup(bool? gotoWalletOnStartup) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#gotoWalletOnStartup,
|
||||||
|
gotoWalletOnStartup,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
set startupWalletId(String? startupWalletId) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#startupWalletId,
|
||||||
|
startupWalletId,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get externalCalls => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#externalCalls),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set externalCalls(bool? externalCalls) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#externalCalls,
|
||||||
|
externalCalls,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get enableCoinControl => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#enableCoinControl),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set enableCoinControl(bool? enableCoinControl) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#enableCoinControl,
|
||||||
|
enableCoinControl,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get enableSystemBrightness => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#enableSystemBrightness),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
set enableSystemBrightness(bool? enableSystemBrightness) =>
|
||||||
|
super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#enableSystemBrightness,
|
||||||
|
enableSystemBrightness,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
String get themeId => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#themeId),
|
||||||
|
returnValue: '',
|
||||||
|
) as String);
|
||||||
|
@override
|
||||||
|
set themeId(String? themeId) => super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#themeId,
|
||||||
|
themeId,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
String get systemBrightnessLightThemeId => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#systemBrightnessLightThemeId),
|
||||||
|
returnValue: '',
|
||||||
|
) as String);
|
||||||
|
@override
|
||||||
|
set systemBrightnessLightThemeId(String? systemBrightnessLightThemeId) =>
|
||||||
|
super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#systemBrightnessLightThemeId,
|
||||||
|
systemBrightnessLightThemeId,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
String get systemBrightnessDarkThemeId => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#systemBrightnessDarkThemeId),
|
||||||
|
returnValue: '',
|
||||||
|
) as String);
|
||||||
|
@override
|
||||||
|
set systemBrightnessDarkThemeId(String? systemBrightnessDarkThemeId) =>
|
||||||
|
super.noSuchMethod(
|
||||||
|
Invocation.setter(
|
||||||
|
#systemBrightnessDarkThemeId,
|
||||||
|
systemBrightnessDarkThemeId,
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
bool get hasListeners => (super.noSuchMethod(
|
||||||
|
Invocation.getter(#hasListeners),
|
||||||
|
returnValue: false,
|
||||||
|
) as bool);
|
||||||
|
@override
|
||||||
|
_i23.Future<void> init() => (super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#init,
|
||||||
|
[],
|
||||||
|
),
|
||||||
|
returnValue: _i23.Future<void>.value(),
|
||||||
|
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||||
|
) as _i23.Future<void>);
|
||||||
|
@override
|
||||||
|
_i23.Future<void> incrementCurrentNotificationIndex() => (super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#incrementCurrentNotificationIndex,
|
||||||
|
[],
|
||||||
|
),
|
||||||
|
returnValue: _i23.Future<void>.value(),
|
||||||
|
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||||
|
) as _i23.Future<void>);
|
||||||
|
@override
|
||||||
|
_i23.Future<bool> isExternalCallsSet() => (super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#isExternalCallsSet,
|
||||||
|
[],
|
||||||
|
),
|
||||||
|
returnValue: _i23.Future<bool>.value(false),
|
||||||
|
) as _i23.Future<bool>);
|
||||||
|
@override
|
||||||
|
_i23.Future<void> saveUserID(String? userId) => (super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#saveUserID,
|
||||||
|
[userId],
|
||||||
|
),
|
||||||
|
returnValue: _i23.Future<void>.value(),
|
||||||
|
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||||
|
) as _i23.Future<void>);
|
||||||
|
@override
|
||||||
|
_i23.Future<void> saveSignupEpoch(int? signupEpoch) => (super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#saveSignupEpoch,
|
||||||
|
[signupEpoch],
|
||||||
|
),
|
||||||
|
returnValue: _i23.Future<void>.value(),
|
||||||
|
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||||
|
) as _i23.Future<void>);
|
||||||
|
@override
|
||||||
|
_i34.AmountUnit amountUnit(_i22.Coin? coin) => (super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#amountUnit,
|
||||||
|
[coin],
|
||||||
|
),
|
||||||
|
returnValue: _i34.AmountUnit.normal,
|
||||||
|
) as _i34.AmountUnit);
|
||||||
|
@override
|
||||||
|
void updateAmountUnit({
|
||||||
|
required _i22.Coin? coin,
|
||||||
|
required _i34.AmountUnit? amountUnit,
|
||||||
|
}) =>
|
||||||
|
super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#updateAmountUnit,
|
||||||
|
[],
|
||||||
|
{
|
||||||
|
#coin: coin,
|
||||||
|
#amountUnit: amountUnit,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
int maxDecimals(_i22.Coin? coin) => (super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#maxDecimals,
|
||||||
|
[coin],
|
||||||
|
),
|
||||||
|
returnValue: 0,
|
||||||
|
) as int);
|
||||||
|
@override
|
||||||
|
void updateMaxDecimals({
|
||||||
|
required _i22.Coin? coin,
|
||||||
|
required int? maxDecimals,
|
||||||
|
}) =>
|
||||||
|
super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#updateMaxDecimals,
|
||||||
|
[],
|
||||||
|
{
|
||||||
|
#coin: coin,
|
||||||
|
#maxDecimals: maxDecimals,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
void addListener(_i25.VoidCallback? listener) => super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#addListener,
|
||||||
|
[listener],
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
void removeListener(_i25.VoidCallback? listener) => super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#removeListener,
|
||||||
|
[listener],
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
void dispose() => super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#dispose,
|
||||||
|
[],
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
void notifyListeners() => super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#notifyListeners,
|
||||||
|
[],
|
||||||
|
),
|
||||||
|
returnValueForMissingStub: null,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/// A class which mocks [LocaleService].
|
/// A class which mocks [LocaleService].
|
||||||
///
|
///
|
||||||
/// See the documentation for Mockito's code generation for more information.
|
/// See the documentation for Mockito's code generation for more information.
|
||||||
class MockLocaleService extends _i1.Mock implements _i32.LocaleService {
|
class MockLocaleService extends _i1.Mock implements _i35.LocaleService {
|
||||||
MockLocaleService() {
|
MockLocaleService() {
|
||||||
_i1.throwOnMissingStub(this);
|
_i1.throwOnMissingStub(this);
|
||||||
}
|
}
|
||||||
|
@ -2130,15 +2611,15 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService {
|
||||||
),
|
),
|
||||||
) as _i19.SecureStorageInterface);
|
) as _i19.SecureStorageInterface);
|
||||||
@override
|
@override
|
||||||
List<_i33.NodeModel> get primaryNodes => (super.noSuchMethod(
|
List<_i36.NodeModel> get primaryNodes => (super.noSuchMethod(
|
||||||
Invocation.getter(#primaryNodes),
|
Invocation.getter(#primaryNodes),
|
||||||
returnValue: <_i33.NodeModel>[],
|
returnValue: <_i36.NodeModel>[],
|
||||||
) as List<_i33.NodeModel>);
|
) as List<_i36.NodeModel>);
|
||||||
@override
|
@override
|
||||||
List<_i33.NodeModel> get nodes => (super.noSuchMethod(
|
List<_i36.NodeModel> get nodes => (super.noSuchMethod(
|
||||||
Invocation.getter(#nodes),
|
Invocation.getter(#nodes),
|
||||||
returnValue: <_i33.NodeModel>[],
|
returnValue: <_i36.NodeModel>[],
|
||||||
) as List<_i33.NodeModel>);
|
) as List<_i36.NodeModel>);
|
||||||
@override
|
@override
|
||||||
bool get hasListeners => (super.noSuchMethod(
|
bool get hasListeners => (super.noSuchMethod(
|
||||||
Invocation.getter(#hasListeners),
|
Invocation.getter(#hasListeners),
|
||||||
|
@ -2156,7 +2637,7 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService {
|
||||||
@override
|
@override
|
||||||
_i23.Future<void> setPrimaryNodeFor({
|
_i23.Future<void> setPrimaryNodeFor({
|
||||||
required _i22.Coin? coin,
|
required _i22.Coin? coin,
|
||||||
required _i33.NodeModel? node,
|
required _i36.NodeModel? node,
|
||||||
bool? shouldNotifyListeners = false,
|
bool? shouldNotifyListeners = false,
|
||||||
}) =>
|
}) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
|
@ -2173,40 +2654,40 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService {
|
||||||
returnValueForMissingStub: _i23.Future<void>.value(),
|
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||||
) as _i23.Future<void>);
|
) as _i23.Future<void>);
|
||||||
@override
|
@override
|
||||||
_i33.NodeModel? getPrimaryNodeFor({required _i22.Coin? coin}) =>
|
_i36.NodeModel? getPrimaryNodeFor({required _i22.Coin? coin}) =>
|
||||||
(super.noSuchMethod(Invocation.method(
|
(super.noSuchMethod(Invocation.method(
|
||||||
#getPrimaryNodeFor,
|
#getPrimaryNodeFor,
|
||||||
[],
|
[],
|
||||||
{#coin: coin},
|
{#coin: coin},
|
||||||
)) as _i33.NodeModel?);
|
)) as _i36.NodeModel?);
|
||||||
@override
|
@override
|
||||||
List<_i33.NodeModel> getNodesFor(_i22.Coin? coin) => (super.noSuchMethod(
|
List<_i36.NodeModel> getNodesFor(_i22.Coin? coin) => (super.noSuchMethod(
|
||||||
Invocation.method(
|
Invocation.method(
|
||||||
#getNodesFor,
|
#getNodesFor,
|
||||||
[coin],
|
[coin],
|
||||||
),
|
),
|
||||||
returnValue: <_i33.NodeModel>[],
|
returnValue: <_i36.NodeModel>[],
|
||||||
) as List<_i33.NodeModel>);
|
) as List<_i36.NodeModel>);
|
||||||
@override
|
@override
|
||||||
_i33.NodeModel? getNodeById({required String? id}) =>
|
_i36.NodeModel? getNodeById({required String? id}) =>
|
||||||
(super.noSuchMethod(Invocation.method(
|
(super.noSuchMethod(Invocation.method(
|
||||||
#getNodeById,
|
#getNodeById,
|
||||||
[],
|
[],
|
||||||
{#id: id},
|
{#id: id},
|
||||||
)) as _i33.NodeModel?);
|
)) as _i36.NodeModel?);
|
||||||
@override
|
@override
|
||||||
List<_i33.NodeModel> failoverNodesFor({required _i22.Coin? coin}) =>
|
List<_i36.NodeModel> failoverNodesFor({required _i22.Coin? coin}) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(
|
Invocation.method(
|
||||||
#failoverNodesFor,
|
#failoverNodesFor,
|
||||||
[],
|
[],
|
||||||
{#coin: coin},
|
{#coin: coin},
|
||||||
),
|
),
|
||||||
returnValue: <_i33.NodeModel>[],
|
returnValue: <_i36.NodeModel>[],
|
||||||
) as List<_i33.NodeModel>);
|
) as List<_i36.NodeModel>);
|
||||||
@override
|
@override
|
||||||
_i23.Future<void> add(
|
_i23.Future<void> add(
|
||||||
_i33.NodeModel? node,
|
_i36.NodeModel? node,
|
||||||
String? password,
|
String? password,
|
||||||
bool? shouldNotifyListeners,
|
bool? shouldNotifyListeners,
|
||||||
) =>
|
) =>
|
||||||
|
@ -2258,7 +2739,7 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService {
|
||||||
) as _i23.Future<void>);
|
) as _i23.Future<void>);
|
||||||
@override
|
@override
|
||||||
_i23.Future<void> edit(
|
_i23.Future<void> edit(
|
||||||
_i33.NodeModel? editedNode,
|
_i36.NodeModel? editedNode,
|
||||||
String? password,
|
String? password,
|
||||||
bool? shouldNotifyListeners,
|
bool? shouldNotifyListeners,
|
||||||
) =>
|
) =>
|
||||||
|
@ -2350,7 +2831,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
@ -2718,7 +3199,7 @@ class MockCoinServiceAPI extends _i1.Mock implements _i20.CoinServiceAPI {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -866,7 +866,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i28.BitcoinWallet {
|
||||||
@override
|
@override
|
||||||
_i21.Coin get coin => (super.noSuchMethod(
|
_i21.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i21.Coin.bitcoin,
|
returnValue: _i21.Coin.banano,
|
||||||
) as _i21.Coin);
|
) as _i21.Coin);
|
||||||
@override
|
@override
|
||||||
_i22.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
_i22.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||||
|
@ -2077,7 +2077,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i21.Coin get coin => (super.noSuchMethod(
|
_i21.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i21.Coin.bitcoin,
|
returnValue: _i21.Coin.banano,
|
||||||
) as _i21.Coin);
|
) as _i21.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
@ -2445,7 +2445,7 @@ class MockCoinServiceAPI extends _i1.Mock implements _i19.CoinServiceAPI {
|
||||||
@override
|
@override
|
||||||
_i21.Coin get coin => (super.noSuchMethod(
|
_i21.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i21.Coin.bitcoin,
|
returnValue: _i21.Coin.banano,
|
||||||
) as _i21.Coin);
|
) as _i21.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -521,7 +521,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
||||||
@override
|
@override
|
||||||
_i20.Coin get coin => (super.noSuchMethod(
|
_i20.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i20.Coin.bitcoin,
|
returnValue: _i20.Coin.banano,
|
||||||
) as _i20.Coin);
|
) as _i20.Coin);
|
||||||
@override
|
@override
|
||||||
_i21.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
_i21.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||||
|
|
|
@ -776,7 +776,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||||
|
@ -2186,7 +2186,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
@ -2554,7 +2554,7 @@ class MockCoinServiceAPI extends _i1.Mock implements _i20.CoinServiceAPI {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
|
@ -878,7 +878,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i29.BitcoinWallet {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||||
|
@ -2289,7 +2289,7 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
@ -2657,7 +2657,7 @@ class MockCoinServiceAPI extends _i1.Mock implements _i20.CoinServiceAPI {
|
||||||
@override
|
@override
|
||||||
_i22.Coin get coin => (super.noSuchMethod(
|
_i22.Coin get coin => (super.noSuchMethod(
|
||||||
Invocation.getter(#coin),
|
Invocation.getter(#coin),
|
||||||
returnValue: _i22.Coin.bitcoin,
|
returnValue: _i22.Coin.banano,
|
||||||
) as _i22.Coin);
|
) as _i22.Coin);
|
||||||
@override
|
@override
|
||||||
bool get isRefreshing => (super.noSuchMethod(
|
bool get isRefreshing => (super.noSuchMethod(
|
||||||
|
|
Loading…
Reference in a new issue