pod updates and more tests
[catagits/Catalyst-Plugin-ConfigLoader.git] / t / 20-mock_load.t
diff --git a/t/20-mock_load.t b/t/20-mock_load.t
new file mode 100644 (file)
index 0000000..7f19b85
--- /dev/null
@@ -0,0 +1,42 @@
+use Test::More tests => 5;\r
+\r
+my $app = MockApp->new;\r
+$app->setup;\r
+\r
+ok( $app->config );\r
+is( $app->config->{ 'Controller::Foo' }->{ foo }, 'bar' );\r
+is( $app->config->{ 'Controller::Foo' }->{ new }, 'key' );\r
+is( $app->config->{ 'Model::Baz' }->{ qux }, 'xyzzy' );\r
+is( $app->config->{ 'Model::Baz' }->{ another }, 'new key' );\r
+\r
+package MockApp;\r
+\r
+use base qw( Catalyst::Plugin::ConfigLoader );\r
+use NEXT;\r
+use Catalyst::Utils;\r
+\r
+sub new {\r
+    return bless { }, shift;\r
+}\r
+\r
+sub path_to {\r
+    return 't/mockapp';\r
+}\r
+\r
+sub debug {\r
+    0;\r
+}\r
+\r
+sub config {\r
+    my $self = shift;\r
+    $self->{ _config } = {} unless $self->{ _config };\r
+    if (@_) {\r
+        my $config = @_ > 1 ? {@_} : $_[0];\r
+        while ( my ( $key, $val ) = each %$config ) {\r
+            $self->{ _config }->{$key} = $val;\r
+        }\r
+    }\r
+    return $self->{ _config };\r
+}\r
+\r
+1;
\ No newline at end of file