--- /dev/null
+use strict;
+use warnings;
+
+use Test::More;
+\r
+my @tests = (\r
+ {\r
+ given => [ { a => 1 }, { b => 1 } ],\r
+ expects => { a => 1, b => 1 }\r
+ },\r
+ {\r
+ given => [ { a => 1 }, { a => { b => 1 } } ],\r
+ expects => { a => { b => 1 } }\r
+ },\r
+ {\r
+ given => [ { a => { b => 1 } }, { a => 1 } ],\r
+ expects => { a => 1 }\r
+ },\r
+ {\r
+ given => [ { a => 1 }, { a => [ 1 ] } ],\r
+ expects => { a => [ 1 ] }\r
+ },\r
+ {\r
+ given => [ { a => [ 1 ] }, { a => 1 } ],\r
+ expects => { a => 1 }\r
+ },\r
+ {\r
+ given => [ { a => { b => 1 } }, { a => { b => 2 } } ],\r
+ expects => { a => { b => 2 } }\r
+ },\r
+ {\r
+ given => [ { a => { b => 1 } }, { a => { c => 1 } } ],\r
+ expects => { a => { b => 1, c => 1 } }\r
+ },\r
+);\r
+
+plan tests => scalar @tests + 1;
+
+use_ok('Catalyst');
+
+for my $test ( @ tests ) {\r
+ is_deeply( Catalyst->merge_config_hashes( @{ $test->{ given } } ), $test->{ expects } );\r
+}\r