#!/usr/bin/perl use strict; use warnings; use Test::More tests => 10; use VS::RuleEngine::Declare; use lib 't/lib'; my $engine = engine { defaults "d1" => { foo => 1, }; defaults "d2" => { bar => 2, }; action "a1" => instanceof "Test::VS::RuleEngine::Action" => with_defaults "d1"; action "a2" => instanceof "Test::VS::RuleEngine::Action" => with_defaults [qw(d1 d2)]; }; ok($engine->has_defaults("d1")); my $defaults = $engine->get_defaults("d1"); ok(defined $defaults); is_deeply($defaults, { foo => 1 }); ok($engine->has_defaults("d2")); $defaults = $engine->get_defaults("d2"); ok(defined $defaults); is_deeply($defaults, { bar => 2 }); ok($engine->has_action("a1")); my $action = $engine->_get_action("a1")->instantiate($engine); is_deeply($action, { foo => 1 }); ok($engine->has_action("a2")); $action = $engine->_get_action("a2")->instantiate($engine); is_deeply($action, { foo => 1, bar => 2 });