diff options
-rw-r--r-- | lib/ManaTools/Shared/Services.pm | 20 | ||||
-rw-r--r-- | t/07-Shared_Services.t | 23 |
2 files changed, 42 insertions, 1 deletions
diff --git a/lib/ManaTools/Shared/Services.pm b/lib/ManaTools/Shared/Services.pm index abef8c31..c0f06c55 100644 --- a/lib/ManaTools/Shared/Services.pm +++ b/lib/ManaTools/Shared/Services.pm @@ -114,7 +114,25 @@ sub _dbusObjectInitialize { $self->dbus_systemd1_object($self->dbus_systemd1_service->get_object("/org/freedesktop/systemd1")); } +has 'include_static_services' => ( + is => 'rw', + isa => 'Bool', + default => 0 +); + +#============================================================= + +=head2 attributes +=head3 service_info + + A HashRef collecting all the service information. + if include_static_services (default is false) is set also static + services are included. + +=cut + +#============================================================= has 'service_info' => ( is => 'rw', traits => ['Hash'], @@ -149,7 +167,7 @@ sub _serviceInfoInitialization { $st = 'enabled'; } } - if ($st && $st ne 'static') { + if ($st && ($self->include_static_services() || $st ne 'static')) { $services{$name} = { 'name' => $s->[0], 'description' => $s->[1], diff --git a/t/07-Shared_Services.t b/t/07-Shared_Services.t new file mode 100644 index 00000000..680466a5 --- /dev/null +++ b/t/07-Shared_Services.t @@ -0,0 +1,23 @@ +use 5.006; +use strict; +use warnings FATAL => 'all'; +use Test::More; +use Data::Dumper; +use Time::Piece; + +BEGIN { + use_ok( 'ManaTools::Shared::Services' ) || print "ManaTools::Shared::Services failed!\n"; +} + + ok(my $s = ManaTools::Shared::Services->new(), 'create ManaTools::Shared::Services'); + is ($s->include_static_services(), 0, 'include_static_services (false)'); + ok(my $services = $s->service_info(), 'service_info'); + diag Dumper($services); + + # Get static services also + ok($s = ManaTools::Shared::Services->new(include_static_services => 1), 'create ManaTools::Shared::Services with static services'); + is ($s->include_static_services(), 1, 'include_static_services (true)'); + ok($services = $s->service_info(), 'service_info with static services'); + diag Dumper($services); + +done_testing; |