diff options
Diffstat (limited to 't')
-rw-r--r-- | t/Test/HAProxy.pm | 23 | ||||
-rw-r--r-- | t/format.t | 106 | ||||
-rw-r--r-- | t/select.t | 43 |
3 files changed, 172 insertions, 0 deletions
diff --git a/t/Test/HAProxy.pm b/t/Test/HAProxy.pm new file mode 100644 index 0000000..b5b8a19 --- /dev/null +++ b/t/Test/HAProxy.pm @@ -0,0 +1,23 @@ +package Test::HAProxy; +use strict; +use warnings; +use parent 'Config::HAProxy'; +use File::Basename; +use File::Temp; +use autodie; + +sub new { + my $class = shift; + + my $file = new File::Temp; + while (<main::DATA>) { + print $file $_; + } + close $file; + $class->SUPER::new($file->filename)->parse; +} + +1; + + + diff --git a/t/format.t b/t/format.t new file mode 100644 index 0000000..06b9884 --- /dev/null +++ b/t/format.t @@ -0,0 +1,106 @@ +# -*- perl -*- +use lib qw(t lib); +use strict; +use warnings; +use Test::More; +use autodie; + +BEGIN { + plan tests => 6; + use_ok('Test::HAProxy'); +} + +my $hp = new Test::HAProxy; +isa_ok($hp,'Test::HAProxy'); + +my $s; +open(my $fh, '>', \$s); +$hp->write($fh); +close $fh; + +is($s, q{global +# comment + log /dev/log daemon + user haproxy + group haproxy +defaults + log global + mode http +frontend in + mode http + bind :::80 v4v6 +backend out + server localhost http://127.0.0.1 +}, 'default write'); + +open($fh, '>', \$s); +$hp->write($fh, indent => 2); +close $fh; + +is($s, q{global +# comment + log /dev/log daemon + user haproxy + group haproxy +defaults + log global + mode http +frontend in + mode http + bind :::80 v4v6 +backend out + server localhost http://127.0.0.1 +}, 'reindent'); + +open($fh, '>', \$s); +$hp->write($fh, indent => 2, reindent_comments => 1); +close $fh; + +is($s, q{global + # comment + log /dev/log daemon + user haproxy + group haproxy +defaults + log global + mode http +frontend in + mode http + bind :::80 v4v6 +backend out + server localhost http://127.0.0.1 +}, 'reindent comments'); + +open($fh, '>', \$s); +$hp->write($fh, indent => 4, tabstop => [ 10, 24 ]); +close $fh; + +is($s, q{global +# comment + log /dev/log daemon + user haproxy + group haproxy +defaults + log global + mode http +frontend in + mode http + bind :::80 v4v6 +backend out + server localhost http://127.0.0.1 +}, 'tabstops'); + +__DATA__ +global +# comment + log /dev/log daemon + user haproxy + group haproxy +defaults + log global + mode http +frontend in + mode http + bind :::80 v4v6 +backend out + server localhost http://127.0.0.1 diff --git a/t/select.t b/t/select.t new file mode 100644 index 0000000..0be1c9c --- /dev/null +++ b/t/select.t @@ -0,0 +1,43 @@ +# -*- perl -*- +use lib qw(t lib); +use strict; +use warnings; +use Test::More; +use autodie; + +BEGIN { + plan tests => 4; + use_ok('Test::HAProxy'); +} + +my $hp = new Test::HAProxy; +isa_ok($hp,'Test::HAProxy'); + +is(join(',', map { $_->arg(0) } $hp->select ( name => 'frontend' )), + 'in,ins', + 'simple select'); + +is(join(',', map { $_->arg(0) } $hp->select ( name => 'frontend', + arg => { n => 0, v => 'in' } )), + 'in', + 'complex select'); + + +__DATA__ +global + log /dev/log daemon + user haproxy + group haproxy +defaults + log global + mode http +frontend in + mode http + bind :::80 v4v6 +backend out + server localhost http://127.0.0.1 +frontend ins + mode https + bind :::443 v4v6 + + |