Files

26 lines
863 B
PHP
Raw Permalink Normal View History

<?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();
});