createTestFinipay function
Future<Finipay>
createTestFinipay({
- required StubHttpAdapter adapter,
- KeyValueStore? secureStore,
- KeyValueStore? localStore,
- String? signedInAs,
- bool transfers = true,
- String tenant = 'FINIPAY',
- String appVersion = '1.7.0',
- FinipayBranding? branding,
- PartnerCodeProvider? partnerCode,
- PartnerUserProvider? partnerUser,
- Map<
String, String> messages = const {}, - MoneyCodec moneyCodec = const MoneyCodec(format: MoneyWireFormat.decimalNumber),
SDK на подменённой сети для тестов приложения, без платформенных каналов
и Finipay.instance. signedInAs — уже открытая сессия с этим userId;
transfers false — как init без ключей шифрования.
Implementation
Future<Finipay> createTestFinipay({
required StubHttpAdapter adapter,
KeyValueStore? secureStore,
KeyValueStore? localStore,
String? signedInAs,
bool transfers = true,
String tenant = 'FINIPAY',
String appVersion = '1.7.0',
FinipayBranding? branding,
PartnerCodeProvider? partnerCode,
PartnerUserProvider? partnerUser,
Map<String, String> messages = const {},
MoneyCodec moneyCodec = const MoneyCodec(
format: MoneyWireFormat.decimalNumber,
),
}) async {
final secure = secureStore ?? InMemoryKeyValueStore();
if (signedInAs != null) {
await KeyValueTokenStore(secure).write(
AuthSession(
accessToken: 'test-access',
refreshToken: 'test-refresh',
userId: signedInAs,
// Иначе SDK сбросит сессию без метки как чужую.
owner: sessionOwnerOf(partnerUser?.call()),
),
);
}
var ids = 0;
final core = await FinipayCore.create(
FinipayConfig(
environment: FinipayEnvironment.custom(Uri.parse('https://stub.local')),
clientInfo: FinipayClientInfo(
tenant: tenant,
platform: 'IOS',
appVersion: appVersion,
),
branding: branding,
secureStore: secure,
localStore: localStore ?? InMemoryKeyValueStore(),
generateId: () => 'test-${++ids}',
moneyCodec: moneyCodec,
adapter: adapter,
partnerCode: partnerCode,
partnerUser: partnerUser,
messages: messages,
),
);
return finipayFromCore(
core,
transferCipher:
transfers ? const _PlainCipher() : const MissingTransferCipher(),
);
}