public function __construct(BankAccountInterface $bankAccount, $specKnown, $specResult)
{
try {
Assert::boolean($specKnown, 'specKnown should be a boolean, got: `%s`');
if (true === $specKnown) {
Assert::boolean($specResult, 'specResult should be a boolean, got: `%s`');
} else {
Assert::null($specResult, 'specResult should be null, got: `%s`');
}
} catch (\InvalidArgumentException $e) {
throw E::wrap($e);
}
$this->bankAccount = $bankAccount;
$this->specKnown = $specKnown;
$this->specResult = $specResult;
}