remove obsolete thing that never worked
[scpubgit/Q-Branch.git] / t / 23_is_X_value.t
index df3b0ea..c43b3a3 100644 (file)
@@ -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 },
@@ -142,7 +162,7 @@ for my $case (
       if (STRINGIFIER_CAN_RETURN_IVS and $can_cmp) {
         is_deeply(
           is_plain_value $num,
-          [ $num ],
+          \$num,
           "stringification detected on $case->{class}",
         ) || diag explain $case;
       }
@@ -150,13 +170,13 @@ for my $case (
         # is_deeply does not do nummify/stringify cmps properly
         # but we can always compare the ice
         ok(
-          ( nfreeze( is_plain_value $num ) eq nfreeze( [ $num ] ) ),
+          ( nfreeze( is_plain_value $num ) eq nfreeze( \$num ) ),
           "stringification without cmp capability detected on $case->{class}"
         ) || diag explain $case;
       }
 
       is (
-        refaddr( ( is_plain_value($num)||[] )->[0] ),
+        refaddr( ${is_plain_value($num)} ),
         refaddr $num,
         "Same reference (blessed object) returned",
       );
@@ -178,7 +198,7 @@ lives_ok {
   cmp_ok(--$num, 'eq', 23, 'test overloaded object compares correctly');
   is_deeply(
     is_plain_value $num,
-    [ 23 ],
+    \23,
     'fallback stringification detected'
   );
   cmp_ok(--$num, 'eq', 22, 'test overloaded object compares correctly');
@@ -188,7 +208,7 @@ lives_ok {
 
 is_deeply
   is_plain_value {  -value => [] },
-  [ [] ],
+  \[],
   '-value recognized'
 ;
 
@@ -203,21 +223,21 @@ for ([], {}, \'') {
 for (undef, { -value => undef }) {
   is_deeply
     is_plain_value $_,
-    [ undef ],
+    \undef,
     'NULL -value recognized'
   ;
 }
 
 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'
 ;