use strict; use warnings qw(all); use 5.022; use Test::More tests => 4; use Test::Warn; use Config::Structured; my $conf = Config::Structured->new( structure => {labels => {isa => 'ArrayRef[Str]'},}, config => {labels => [qw(a b c)],} ); is(ref($conf->labels), 'ARRAY', 'Conf value is array'); warning_is { $conf = Config::Structured->new( structure => {bad => {isa => 'not a valid type'}}, config => {bad => 'abc'}, ); } {carped => q{[Config::Structured] Invalid typeconstraint 'not a valid type'. Skipping typecheck},}, 'Invalid typeconstraint not caught'; is($conf->bad, 'abc', 'Bad typeconstraint value'); warning_is { $conf = Config::Structured->new( structure => {authz => {isa => 'HashRef'}}, config => {authz => 'authz value'}, ); } {carped => q{[Config::Structured] Value '"authz value"' does not conform to type 'HashRef' for node /authz},}, 'Incorrect typeconstraint not caught';