26 lines
863 B
PHP
26 lines
863 B
PHP
<?php
|
|||
|
|
|
||
|
|
use App\Models\Post;
|
||
|
|
use App\Support\Publishing\PublisherManager;
|
||
|
|
use App\Support\Publishing\RedditPublisher;
|
||
|
|
use App\Support\Publishing\WordPressPublisher;
|
||
|
|
|
||
|
|
test('it resolves the first publisher that supports the post', function () {
|
||
|
|
$manager = new PublisherManager([
|
||
|
|
new WordPressPublisher,
|
||
|
|
new RedditPublisher,
|
||
|
|
]);
|
||
|
|
|
||
|
|
expect($manager->resolve(Post::factory()->make(['type' => 'blog'])))->toBeInstanceOf(WordPressPublisher::class);
|
||
|
|
expect($manager->resolve(Post::factory()->make(['type' => 'reddit'])))->toBeInstanceOf(RedditPublisher::class);
|
||
|
|
});
|
||
|
|
|
||
|
|
test('it returns null when no publisher supports the post', function () {
|
||
|
|
$manager = new PublisherManager([
|
||
|
|
new WordPressPublisher,
|
||
|
|
new RedditPublisher,
|
||
|
|
]);
|
||
|
|
|
||
|
|
expect($manager->resolve(Post::factory()->make(['type' => 'twitter'])))->toBeNull();
|
||
|
|
});
|