fixed _refkind for \$object, \\$object. Added tests for _refkind
[dbsrgits/SQL-Abstract.git] / t / 09refkind.t
diff --git a/t/09refkind.t b/t/09refkind.t
new file mode 100644 (file)
index 0000000..e51fcf0
--- /dev/null
@@ -0,0 +1,31 @@
+#!/usr/bin/perl\r
+\r
+use strict;\r
+use warnings;\r
+use Test::More;\r
+use SQL::Abstract;\r
+\r
+plan tests => 13;\r
+\r
+my $obj = bless {}, "Foo::Bar";\r
+\r
+is(SQL::Abstract->_refkind(undef), 'UNDEF', 'UNDEF');\r
+\r
+is(SQL::Abstract->_refkind({}), 'HASHREF', 'HASHREF');\r
+is(SQL::Abstract->_refkind([]), 'ARRAYREF', 'ARRAYREF');\r
+\r
+is(SQL::Abstract->_refkind(\{}), 'HASHREFREF', 'HASHREFREF');\r
+is(SQL::Abstract->_refkind(\[]), 'ARRAYREFREF', 'ARRAYREFREF');\r
+\r
+is(SQL::Abstract->_refkind(\\{}), 'HASHREFREFREF', 'HASHREFREFREF');\r
+is(SQL::Abstract->_refkind(\\[]), 'ARRAYREFREFREF', 'ARRAYREFREFREF');\r
+\r
+is(SQL::Abstract->_refkind("foo"), 'SCALAR', 'SCALAR');\r
+is(SQL::Abstract->_refkind(\"foo"), 'SCALARREF', 'SCALARREF');\r
+is(SQL::Abstract->_refkind(\\"foo"), 'SCALARREFREF', 'SCALARREFREF');\r
+\r
+# objects are treated like scalars\r
+is(SQL::Abstract->_refkind($obj), 'SCALAR', 'SCALAR');\r
+is(SQL::Abstract->_refkind(\$obj), 'SCALARREF', 'SCALARREF');\r
+is(SQL::Abstract->_refkind(\\$obj), 'SCALARREFREF', 'SCALARREFREF');\r
+\r