@@ -18,14 +18,65 @@ class ServiceProviderTest extends TestCase
1818 function setup_service_provider ()
1919 {
2020 $ this ->container = Mockery::mock (Container::class);
21- $ this ->serviceProvider = new ServiceProvider ($ this ->container );
21+ $ this ->serviceProvider = new ResettableServiceProvider ($ this ->container );
22+ }
23+
24+ /**
25+ * @after
26+ */
27+ function reset_publish_list ()
28+ {
29+ ResettableServiceProvider::$ publishes = [];
2230 }
2331
2432 /**
2533 * @test
2634 */
2735 function ensure_a_service_provider_can_be_constructed ()
2836 {
37+ $ this ->assertInstanceOf (ServiceProvider::class, $ this ->serviceProvider );
2938 $ this ->assertInstanceOf (IlluminateServiceProvider::class, $ this ->serviceProvider );
3039 }
40+
41+ /**
42+ * @test
43+ */
44+ function when_running_in_the_console_it_adds_its_configuration_to_the_paths_to_publish ()
45+ {
46+ $ this ->container ->shouldReceive ('runningInConsole ' )
47+ ->andReturn (true );
48+ $ this ->container ->shouldReceive ('make ' )
49+ ->with ('path.config ' )
50+ ->andReturn ('/this/is/a/path ' );
51+ $ this ->serviceProvider ->register ();
52+
53+ $ paths = ResettableServiceProvider::pathsToPublish ();
54+
55+ $ this ->assertNotEmpty ($ paths );
56+ $ this ->assertEquals (1 , count ($ paths ));
57+ }
58+
59+ /**
60+ * @test
61+ */
62+ function when_running_outside_of_the_console_its_configuration_is_not_added_to_the_paths_to_publish ()
63+ {
64+ $ this ->container ->shouldReceive ('runningInConsole ' )
65+ ->andReturn (false );
66+ $ this ->serviceProvider ->register ();
67+
68+ $ paths = ResettableServiceProvider::pathsToPublish ();
69+
70+ $ this ->assertEmpty ($ paths );
71+ }
72+ }
73+
74+ class ResettableServiceProvider extends ServiceProvider
75+ {
76+ /**
77+ * The paths that should be published.
78+ *
79+ * @var array
80+ */
81+ public static $ publishes = [];
3182}
0 commit comments