App-RecordStream
view release on metacpan or search on metacpan
tests/RecordStream/KeySpec.t view on Meta::CPAN
use strict;
use warnings;
use Test::More 'no_plan';
use Data::Dumper;
use App::RecordStream::Record;
BEGIN { use_ok("App::RecordStream::KeySpec"); }
{
my $rec = App::RecordStream::Record->new("first_key" => "foo", "second_key" => { "bar" => "biz"}, 0 => "zero");
my $spec = App::RecordStream::KeySpec->new("first_key");
is(${$spec->guess_key($rec)}, "foo", "Exact key spec match");
is(${App::RecordStream::KeySpec::find_key($rec,"first_key")}, "foo", "Exact key spec match");
is(${App::RecordStream::KeySpec::find_key($rec,"does_not_exist")}, undef, "key doesn't exist");
is(${App::RecordStream::KeySpec::find_key($rec,"second_key/bar")}, "biz", "nested hash");
is(${App::RecordStream::KeySpec::find_key($rec,"\@first")}, "foo", "Prefix matching");
is(${App::RecordStream::KeySpec::find_key($rec,"\@cond/ar")}, "biz", "nested substring matching");
is(${App::RecordStream::KeySpec::find_key($rec,"0")}, "zero", "number only first level");
is(${App::RecordStream::KeySpec::find_key($rec,'@0')}, "zero", "number only first level, matching");
}
( run in 0.889 second using v1.01-cache-2.11-cpan-39bf76dae61 )