Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Feature/Console/WalletChargeTest.php
Show First 20 Lines • Show All 111 Lines • ▼ Show 20 Lines | public function testHandleAll(): void | ||||
$wallet = $user->wallets()->first(); | $wallet = $user->wallets()->first(); | ||||
$wallet->balance = 0; | $wallet->balance = 0; | ||||
$wallet->save(); | $wallet->save(); | ||||
// backdate john's entitlements and set balance=0 for all wallets | // backdate john's entitlements and set balance=0 for all wallets | ||||
$this->backdateEntitlements($user->entitlements, \Carbon\Carbon::now()->subWeeks(5)); | $this->backdateEntitlements($user->entitlements, \Carbon\Carbon::now()->subWeeks(5)); | ||||
\App\Wallet::where('balance', '<', '0')->update(['balance' => 0]); | \App\Wallet::where('balance', '<', '0')->update(['balance' => 0]); | ||||
$user2 = $this->getTestUser('wallet-charge@kolabnow.com'); | |||||
$wallet2 = $user2->wallets()->first(); | |||||
$wallet2->balance = -100; | |||||
$wallet2->save(); | |||||
Queue::fake(); | Queue::fake(); | ||||
// Non-existing wallet ID | // Non-existing wallet ID | ||||
$this->artisan('wallet:charge')->assertExitCode(0); | $this->artisan('wallet:charge')->assertExitCode(0); | ||||
Queue::assertPushed(\App\Jobs\WalletCheck::class, 1); | Queue::assertPushed(\App\Jobs\WalletCheck::class, 2); | ||||
Queue::assertPushed(\App\Jobs\WalletCheck::class, function ($job) use ($wallet) { | Queue::assertPushed(\App\Jobs\WalletCheck::class, function ($job) use ($wallet) { | ||||
$job_wallet = TestCase::getObjectProperty($job, 'wallet'); | $job_wallet = TestCase::getObjectProperty($job, 'wallet'); | ||||
return $job_wallet->id === $wallet->id; | return $job_wallet->id === $wallet->id; | ||||
}); | }); | ||||
Queue::assertPushed(\App\Jobs\WalletCheck::class, function ($job) use ($wallet2) { | |||||
$job_wallet = TestCase::getObjectProperty($job, 'wallet'); | |||||
return $job_wallet->id === $wallet2->id; | |||||
}); | |||||
Queue::assertPushed(\App\Jobs\WalletCharge::class, 1); | Queue::assertPushed(\App\Jobs\WalletCharge::class, 1); | ||||
Queue::assertPushed(\App\Jobs\WalletCharge::class, function ($job) use ($wallet) { | Queue::assertPushed(\App\Jobs\WalletCharge::class, function ($job) use ($wallet) { | ||||
$job_wallet = TestCase::getObjectProperty($job, 'wallet'); | $job_wallet = TestCase::getObjectProperty($job, 'wallet'); | ||||
return $job_wallet->id === $wallet->id; | return $job_wallet->id === $wallet->id; | ||||
}); | }); | ||||
} | } | ||||
} | } |