@@ -18,14 +18,65 @@ class ServiceProviderTest extends TestCase
18
18
function setup_service_provider ()
19
19
{
20
20
$ 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 = [];
22
30
}
23
31
24
32
/**
25
33
* @test
26
34
*/
27
35
function ensure_a_service_provider_can_be_constructed ()
28
36
{
37
+ $ this ->assertInstanceOf (ServiceProvider::class, $ this ->serviceProvider );
29
38
$ this ->assertInstanceOf (IlluminateServiceProvider::class, $ this ->serviceProvider );
30
39
}
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 = [];
31
82
}
0 commit comments