Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
assertions.inc
1 <?php
38 function assert_true($value, $msg='', $silent=false, $fatal=true)
39 {
40  if ($value !== true) {
41  if (empty($msg)) {
42  $msg = '['.gettype($value).'] "'.$value.'" was not TRUE';
43  }
44  trigger_exception($msg, $silent, $fatal);
45  return false;
46  }
47  return true;
48 
49 }//end assert_true()
50 
51 
63 function assert_false($value, $msg='', $silent=false, $fatal=true)
64 {
65  if ($value !== false) {
66  if (empty($msg)) {
67  $msg = '['.gettype($value).'] "'.$value.'" was not FALSE';
68  }
69  trigger_exception($msg, $silent, $fatal);
70  return false;
71  }
72  return true;
73 
74 }//end assert_false()
75 
76 
88 function assert_null($value, $msg='', $silent=false, $fatal=true)
89 {
90  if (!is_null($value)) {
91  if (empty($msg)) {
92  $msg = '['.gettype($value).'] "'.$value.'" was not NULL';
93  }
94  trigger_exception($msg, $silent, $fatal);
95  return false;
96  }
97  return true;
98 
99 }//end assert_null()
100 
101 
113 function assert_not_null($value, $msg='', $silent=false, $fatal=true)
114 {
115  if (is_null($value)) {
116  if (empty($msg)) {
117  $msg = translate('passed_value_was_null');
118  }
119  trigger_exception($msg, $silent, $fatal);
120  return false;
121  }
122  return true;
123 
124 }//end assert_not_null()
125 
126 
138 function assert_empty($value, $msg='', $silent=false, $fatal=true)
139 {
140  if (!empty($value)) {
141  if (empty($msg)) {
142  $msg = translate('assert_not_empty', gettype($value), $value);
143  }
144  trigger_exception($msg, $silent, $fatal);
145  return false;
146  }
147  return true;
148 
149 }//end assert_empty()
150 
151 
163 function assert_not_empty($value, $msg='', $silent=false, $fatal=true)
164 {
165  if (empty($value)) {
166  if (empty($msg)) {
167  $msg = translate('assert_empty', gettype($value), $value);
168  }
169  trigger_exception($msg, $silent, $fatal);
170  return false;
171  }
172  return true;
173 
174 }//end assert_not_empty()
175 
176 
193 function assert_equals($test, $expected, $msg='', $silent=false, $fatal=true)
194 {
195  if ($test != $expected) {
196  if (!empty($msg)) $msg .= ' -';
197  $msg .= translate('assert_equals', gettype($expected), $expected, gettype($test), $test);
198  trigger_exception($msg, $silent, $fatal);
199  return false;
200  }
201  return true;
202 
203 }//end assert_equals()
204 
205 
218 function assert_not_equals($value1, $value2, $msg='', $silent=false, $fatal=true)
219 {
220  if ($value1 == $value2) {
221  if (empty($msg)) $msg = translate('assert_not_equal');
222  trigger_exception($msg, $silent, $fatal);
223  return false;
224  }
225  return true;
226 
227 }//end assert_not_equals()
228 
229 
248 function assert_array_contains($test, $expected, $msg='', $silent=false, $fatal=true)
249 {
250  $diff = array_diff($expected, $test);
251  if (!empty($diff)) {
252  if (!empty($msg)) $msg .= ' -';
253  $msg .= translate('assert_contains', print_r($expected,true), print_r($test,true));
254  trigger_exception($msg, $silent, $fatal);
255  return false;
256  }
257  return true;
258 
259 }//end assert_array_contains()
260 
261 
279 function assert_array_equals($test, $expected, $msg='', $silent=false, $fatal=true)
280 {
281  if ($test != $expected) {
282  if (!empty($msg)) $msg .= ' -';
283  $msg .= translate('assert_contains', print_r($expected,true), print_r($test,true));
284  trigger_exception($msg, $silent, $fatal);
285  return false;
286  }
287  return true;
288 
289 }//end assert_array_equals()
290 
291 
307 function assert_isset($test, $msg='', $silent=false, $fatal=true)
308 {
309  if (!isset($test)) {
310  if (empty($msg)) $msg = translate('assert_isset');
311  trigger_exception($msg, $silent, $fatal);
312  return false;
313  }
314  return true;
315 
316 }//end assert_isset()
317 
318 
336 function assert_isset_array_index($test, $index, $msg='', $silent=false, $fatal=true)
337 {
338  assert_type($test, 'array');
339 
340  if (!isset($test[$index])) {
341  if (empty($msg)) {
342  $msg = translate('assert_isset_array', $index);
343  }
344  trigger_exception($msg, $silent, $fatal);
345  return false;
346  }
347  return true;
348 
349 }//end assert_isset_array_index()
350 
351 
364 function assert_is_a($obj, $class, $msg='', $silent=false, $fatal=true)
365 {
366  if (!($obj instanceof $class)) {
367  if (empty($msg)) {
368  $msg = translate('assert_object', strtoupper($class));
369  }
370  trigger_exception($msg, $silent, $fatal);
371  return false;
372  }
373  return true;
374 
375 }//end assert_is_a()
376 
377 
390 function assert_type($obj, $type, $msg='', $silent=false, $fatal=true)
391 {
392  if (strtolower(gettype($obj)) != strtolower($type)) {
393  if (empty($msg)) {
394  $msg = translate('assert_type', gettype($obj), $obj, strtoupper($type));
395  }
396  trigger_exception($msg, $silent, $fatal);
397  return false;
398  }
399  return true;
400 
401 }//end assert_type()
402 
403 
420 function assert_valid_db_result($result, $msg='', $silent=false, $fatal=true)
421 {
422  throw new Exception('assert_valid_db_result() is obselete, use try...catch instead');
423 
424 }//end assert_valid_db_result()
425 
426 
438 function assert_valid_assetid($assetids, $msg='', $silent=false, $fatal=true)
439 {
440  $valid = false;
441 
442  if (!is_array($assetids)) {
443  $assetid_array = Array($assetids);
444  } else {
445  $assetid_array = $assetids;
446  }
447 
448  $current_id = null;
449 
450  foreach ($assetid_array as $one_id) {
451  $valid = false;
452 
453  if (empty($one_id)) break;
454 
455  // valid asset IDs are INTs or STRINGs
456  if (!is_int($one_id) && !is_string($one_id)) {
457  break;
458  }
459 
460  $current_id = $one_id;
461 
462  // must compare the converted int as string values because a non-numeric string will
463  // convert to int(0) which compares TRUE with said non-numeric string - therefore it will
464  // be assumed as int! This cast will make it string('0') which compares as FALSE
465 
466  $is_int_id = (((string)(int)$one_id) == $one_id);
467 
468  if ($is_int_id && !($one_id > 0)) {
469  break;
470  } else if (!$is_int_id && !preg_match('|^[0-9]+:.*$|', $one_id)) {
471  break;
472  }
473  $valid = true;
474  }
475 
476  if (!$valid) {
477  if (empty($msg)) {
478  $msg = translate('assert_assetid', gettype($current_id), htmlspecialchars($current_id));
479  }
480  trigger_exception($msg, $silent, $fatal);
481  return false;
482  }
483  return true;
484 
485 }//end assert_valid_assetid()
486 
487 
498 function trigger_exception($msg, $silent=false, $fatal=false)
499 {
500  $error_type = ($fatal) ? E_USER_ERROR : E_USER_WARNING;
501  if (!$silent) {
502  if (SQ_CONF_DEBUG & 1) {
503  $backtrace = debug_backtrace();
504  $line = $backtrace[1]['line'];
505  $file = $backtrace[1]['file'];
506  if ($fatal) {
507  throw new Exception('Assertion failed: '.$msg);
508  } else {
509  trigger_localised_error('SYS0270', $error_type, $msg, $line, $file);
510  }
511  } else {
512  trigger_localised_error('SYS0320', $error_type, $msg);
513  }
514  }
515 
516  if ($fatal) exit();
517 
518 }//end trigger_exception()
519 
520 
521 ?>