X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F23_is_X_value.t;h=c43b3a369e1e6cbf97b7598f060d68ba65d07010;hb=47662caa5fb4467570af9f7b0fb3dffca20c7ed7;hp=8f37f0b56b4ccb0efed816363b9a94bef137e8f3;hpb=966200cc8a0d73449caac4beb3a7f3c60580b0de;p=scpubgit%2FQ-Branch.git diff --git a/t/23_is_X_value.t b/t/23_is_X_value.t index 8f37f0b..c43b3a3 100644 --- a/t/23_is_X_value.t +++ b/t/23_is_X_value.t @@ -6,6 +6,8 @@ use Test::Exception; use Scalar::Util 'refaddr'; use Storable 'nfreeze'; +BEGIN { $ENV{SQLA_ISVALUE_IGNORE_AUTOGENERATED_STRINGIFICATION} = 0 } + use SQL::Abstract qw(is_plain_value is_literal_value); # fallback setting is inheriting starting p5 50853fa9 (run up to 5.17.0) @@ -14,6 +16,22 @@ use constant STRINGIFIER_CAN_RETURN_IVS => ( ($] < 5.008) ? 0 : 1 ); { package # hideee + SQLATest::SillyBool; + + use overload + # *DELIBERATELY* unspecified + #fallback => 1, + bool => sub { ${$_[0]} }, + ; + + package # hideee + SQLATest::SillyBool::Subclass; + + our @ISA = 'SQLATest::SillyBool'; +} + +{ + package # hideee SQLATest::SillyInt; use overload @@ -103,6 +121,8 @@ use constant STRINGIFIER_CAN_RETURN_IVS => ( ($] < 5.008) ? 0 : 1 ); } for my $case ( + { class => 'SQLATest::SillyBool', can_math => 0, should_str => 1 }, + { class => 'SQLATest::SillyBool::Subclass', can_math => 0, should_str => 1 }, { class => 'SQLATest::SillyInt', can_math => 0, should_str => 1 }, { class => 'SQLATest::SillyInt::Subclass', can_math => 0, should_str => 1 }, { class => 'SQLATest::SillierInt', can_math => 0, should_str => 0 }, @@ -209,15 +229,15 @@ for (undef, { -value => undef }) { } is_deeply - is_literal_value { -ident => 'foo' }, - [ 'foo' ], - '-ident recognized as literal' + is_literal_value \'sql', + [ 'sql' ], + 'literal correctly recognized and unpacked' ; is_deeply is_literal_value \[ 'sql', 'bind1', [ {} => 'bind2' ] ], [ 'sql', 'bind1', [ {} => 'bind2' ] ], - 'literal correctly unpacked' + 'literal with binds correctly recognized and unpacked' ;