Skip to content

Commit

Permalink
Fix: Remove mocks from feature tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mpyw committed Jan 1, 2020
1 parent c756429 commit ebb9a9a
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 18 deletions.
21 changes: 3 additions & 18 deletions tests/Feature/InitializingTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,10 @@
use Illuminate\Contracts\Mail\Mailer;
use Illuminate\Http\Request;
use Illuminate\Notifications\AnonymousNotifiable;
use Illuminate\Notifications\Channels\MailChannel;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Support\Facades\Bus;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Notification;
use Mockery;
use Mpyw\LaravelCachedDatabaseStickiness\ConnectionServiceProvider;
use Mpyw\LaravelCachedDatabaseStickiness\StickinessServiceProvider;
use Mpyw\LaravelCachedDatabaseStickiness\Tests\Stubs\Jobs\FreshJob;
Expand Down Expand Up @@ -94,29 +91,17 @@ public function testInitializationForNotifications(): void

DB::connection();

$general = Mockery::mock(GeneralNotification::class . '[via]');
$general->shouldReceive('via')->andReturn([MailChannel::class]);
$general->shouldReceive('toMail')->andReturn(new MailMessage());

$fresh = Mockery::mock(FreshNotification::class . '[via]');
$fresh->shouldReceive('via')->andReturn([MailChannel::class]);
$fresh->shouldReceive('toMail')->andReturn(new MailMessage());

$modified = Mockery::mock(ModifiedNotification::class . '[via]');
$modified->shouldReceive('via')->andReturn([MailChannel::class]);
$modified->shouldReceive('toMail')->andReturn(new MailMessage());

$this->assertFalse($this->getRecordsModifiedViaReflection());

Notification::send(collect([new AnonymousNotifiable()]), $general);
Notification::send(collect([new AnonymousNotifiable()]), new GeneralNotification());

$this->assertTrue($this->getRecordsModifiedViaReflection());

Notification::send(collect([new AnonymousNotifiable()]), $fresh);
Notification::send(collect([new AnonymousNotifiable()]), new FreshNotification());

$this->assertFalse($this->getRecordsModifiedViaReflection());

Notification::send(collect([new AnonymousNotifiable()]), $modified);
Notification::send(collect([new AnonymousNotifiable()]), new ModifiedNotification());

$this->assertTrue($this->getRecordsModifiedViaReflection());
}
Expand Down
12 changes: 12 additions & 0 deletions tests/Stubs/Notifications/FreshNotification.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,22 @@

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Channels\MailChannel;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use Mpyw\LaravelCachedDatabaseStickiness\ShouldAssumeFresh;

class FreshNotification extends Notification implements ShouldQueue, ShouldAssumeFresh
{
use Queueable;

public function via(): array
{
return [MailChannel::class];
}

public function toMail(): MailMessage
{
return new MailMessage();
}
}
12 changes: 12 additions & 0 deletions tests/Stubs/Notifications/GeneralNotification.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,21 @@

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Channels\MailChannel;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class GeneralNotification extends Notification implements ShouldQueue
{
use Queueable;

public function via(): array
{
return [MailChannel::class];
}

public function toMail(): MailMessage
{
return new MailMessage();
}
}
12 changes: 12 additions & 0 deletions tests/Stubs/Notifications/ModifiedNotification.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,22 @@

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Channels\MailChannel;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use Mpyw\LaravelCachedDatabaseStickiness\ShouldAssumeModified;

class ModifiedNotification extends Notification implements ShouldQueue, ShouldAssumeModified
{
use Queueable;

public function via(): array
{
return [MailChannel::class];
}

public function toMail(): MailMessage
{
return new MailMessage();
}
}

0 comments on commit ebb9a9a

Please sign in to comment.