error_handler = new SendingErrorHandler(); } function testItShouldProcessSoftErrorCorrectly() { $subscribers = [ 'john@doe.com', 'john@rambo.com', ]; $subscriber_ids = [1, 2]; $subscriber_errors = [ new SubscriberError('john@doe.com', 'Subscriber Message'), new SubscriberError('john@rambo.com', null), ]; $error = new MailerError( MailerError::OPERATION_SEND, MailerError::LEVEL_SOFT, 'Error Message', null, $subscriber_errors ); $sending_task = Stub::make( SendingTask::class, [ 'saveSubscriberError' => Expected::exactly( 2, function($id, $message) { if ($id === 2) { expect($message)->equals('Error Message'); } else { expect($message)->equals('Subscriber Message'); } } ), ], $this ); $this->error_handler->processError($error, $sending_task, $subscriber_ids, $subscribers); } }