summaryrefslogtreecommitdiff
path: root/ext/spl/tests/heap_009.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/tests/heap_009.phpt')
-rw-r--r--ext/spl/tests/heap_009.phpt56
1 files changed, 56 insertions, 0 deletions
diff --git a/ext/spl/tests/heap_009.phpt b/ext/spl/tests/heap_009.phpt
new file mode 100644
index 0000000..f660b24
--- /dev/null
+++ b/ext/spl/tests/heap_009.phpt
@@ -0,0 +1,56 @@
+--TEST--
+SPL: SplHeap and friends, throw: An iterator cannot be used with foreach by reference
+--CREDITS--
+Thomas Koch <thomas@koch.ro>
+#Hackday Webtuesday 2008-05-24
+--FILE--
+<?php
+function testForException( $heap )
+{
+ try
+ {
+ foreach( $heap as &$item );
+ }
+ catch( RuntimeException $e )
+ {
+ echo $e->getMessage(),"\n";
+ }
+}
+
+// 1. SplMinHeap emtpy
+$heap = new SplMinHeap;
+testForException( $heap );
+
+// 2. SplMinHeap non-emtpy
+$heap = new SplMinHeap;
+$heap->insert( 1 );
+testForException( $heap );
+
+// 3. SplMaxHeap emtpy
+$heap = new SplMaxHeap;
+testForException( $heap );
+
+// 4. SplMaxHeap non-emtpy
+$heap = new SplMaxHeap;
+$heap->insert( 1 );
+testForException( $heap );
+
+// 5. SplPriorityQueue empty
+$heap = new SplPriorityQueue;
+testForException( $heap );
+
+// 6. SplPriorityQueue non-empty
+$heap = new SplPriorityQueue;
+$heap->insert( 1, 2 );
+testForException( $heap );
+
+?>
+==DONE==
+--EXPECT--
+An iterator cannot be used with foreach by reference
+An iterator cannot be used with foreach by reference
+An iterator cannot be used with foreach by reference
+An iterator cannot be used with foreach by reference
+An iterator cannot be used with foreach by reference
+An iterator cannot be used with foreach by reference
+==DONE==