summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimm Friebe <thekid@php.net>2004-07-11 16:10:03 +0000
committerTimm Friebe <thekid@php.net>2004-07-11 16:10:03 +0000
commitd6c0fdfd2fbbd605417d6b790e085cf64001850b (patch)
treeb13efa5bf4ed7260d0861cc68604c578d916fe19
parent4ebcb2ecfecc55967d96f0c911b92b980be1b284 (diff)
downloadphp-git-d6c0fdfd2fbbd605417d6b790e085cf64001850b.tar.gz
- Initial release
-rw-r--r--ext/sybase_ct/tests/test_fetch_object.phpt74
-rw-r--r--ext/sybase_ct/tests/test_msghandler_handled.phpt69
2 files changed, 143 insertions, 0 deletions
diff --git a/ext/sybase_ct/tests/test_fetch_object.phpt b/ext/sybase_ct/tests/test_fetch_object.phpt
new file mode 100644
index 0000000000..aba5ea938d
--- /dev/null
+++ b/ext/sybase_ct/tests/test_fetch_object.phpt
@@ -0,0 +1,74 @@
+--TEST--
+Sybase-CT sybase_fetch_object
+--SKIPIF--
+<?php
+ require('skipif.inc');
+?>
+--FILE--
+<?php
+/* This file is part of PHP test framework for ext/sybase_ct
+ *
+ * $Id$
+ */
+
+ require('test.inc');
+
+ // {{{ class article
+ class article { }
+ // }}}
+
+ // {{{ resource fetch_object(resource db, [mixed arg= NULL])
+ // Fetches a resultset and returns it as an object
+ function fetch_object($db, $arg= NULL) {
+ return sybase_fetch_object(sybase_query('select
+ 1 as "id",
+ "Hello" as "caption",
+ "timm" as "author",
+ getdate() as "lastchange"
+ ', $db), $arg);
+ }
+ // }}}
+
+ $db= sybase_connect_ex();
+
+ // Test with stdClass
+ var_export(fetch_object($db)); echo "\n";
+
+ // Test with userland class
+ var_export(fetch_object($db, 'article')); echo "\n";
+
+ // Test with object
+ var_export(fetch_object($db, new article())); echo "\n";
+
+ // Test with non-existant class
+ var_export(fetch_object($db, '***')); echo "\n";
+
+ sybase_close($db);
+?>
+--EXPECTF--
+class stdClass {
+ %s $id = 1;
+ %s $caption = 'Hello';
+ %s $author = 'timm';
+ %s $lastchange = '%s';
+}
+class article {
+ %s $id = 1;
+ %s $caption = 'Hello';
+ %s $author = 'timm';
+ %s $lastchange = '%s';
+}
+class article {
+ %s $id = 1;
+ %s $caption = 'Hello';
+ %s $author = 'timm';
+ %s $lastchange = '%s';
+}
+
+Notice: sybase_fetch_object(): Sybase: Class *** has not been declared in %s/test_fetch_object.php on line %d
+class stdClass {
+ %s $id = 1;
+ %s $caption = 'Hello';
+ %s $author = 'timm';
+ %s $lastchange = '%s';
+}
diff --git a/ext/sybase_ct/tests/test_msghandler_handled.phpt b/ext/sybase_ct/tests/test_msghandler_handled.phpt
new file mode 100644
index 0000000000..c9ccc1ddeb
--- /dev/null
+++ b/ext/sybase_ct/tests/test_msghandler_handled.phpt
@@ -0,0 +1,69 @@
+--TEST--
+Sybase-CT server message handler
+--SKIPIF--
+<?php require('skipif.inc'); ?>
+--FILE--
+<?php
+/* This file is part of PHP test framework for ext/sybase_ct
+ *
+ * $Id$
+ */
+
+ require('test.inc');
+
+ // {{{ bool sybase_msg_handler(int msgnumber, int severity, int state, int line, string text)
+ // Handles server messages
+ function user_message_handler($msgnumber, $severity, $state, $line, $text) {
+ switch ($msgnumber) {
+ case 0: // print message
+ printf("!!! %s\n", trim($text));
+ return;
+
+ case 174: // The function 'GETDATE' requires 0 arguments.
+ printf("*** Caught '%s'\n", trim($text));
+ return;
+ }
+ printf("Cannot handle message #%d\n", $msgnumber);
+ return FALSE; // Indicate we can't handle this
+ }
+ // }}}
+
+ sybase_set_messagehandler_ex('user_message_handler');
+ $db= sybase_connect_ex();
+ sybase_min_server_severity(0);
+
+ // These are handled
+ var_dump(sybase_select_ex($db, 'select getdate(NULL)'));
+ var_dump(sybase_select_ex($db, 'print "Hi"'));
+
+ // These aren't
+ var_dump(sybase_select_ex($db, 'use NULL'));
+ var_dump(sybase_select_ex($db, 'select convert(datetime, "notadate")'));
+
+ sybase_close($db);
+?>
+--EXPECTF--
+bool(true)
+>>> Query: select getdate(NULL)
+*** Caught 'The function 'GETDATE' requires 0 arguments.'
+<<< Return: boolean
+bool(false)
+>>> Query: print "Hi"
+!!! Hi
+<<< Return: boolean
+bool(true)
+>>> Query: use NULL
+Cannot handle message #156
+
+Warning: sybase_query(): Sybase: Server message: Incorrect syntax near the keyword 'NULL'.
+ (severity 15, procedure N/A) in %s on line %d
+<<< Return: boolean
+bool(false)
+>>> Query: select convert(datetime, "notadate")
+Cannot handle message #249
+
+Warning: sybase_query(): Sybase: Server message: Syntax error during explicit conversion of VARCHAR value 'notadate' to a DATETIME field.
+ (severity 16, procedure N/A) in %s on line %d
+<<< Return: resource
+array(0) {
+}