diff --git a/system/UnitTests/AssertionHelpers.php b/system/UnitTests/AssertionHelpers.php index 484a883b2..45db3e408 100644 --- a/system/UnitTests/AssertionHelpers.php +++ b/system/UnitTests/AssertionHelpers.php @@ -1,10 +1,12 @@ '; } -function preFormat($text) { +function preFormat($text) +{ if (IS_CLI) { return $text; // Plain text in CLI } else { @@ -12,7 +14,8 @@ function preFormat($text) { } } -function colorText($text, $color) { +function colorText($text, $color) +{ if (IS_CLI) { // ANSI color codes $colors = [ @@ -31,7 +34,8 @@ function colorText($text, $color) { } } -function assertEqual($expected, $actual, $message = '') { +function assertEqual($expected, $actual, $message = '') +{ if ($expected !== $actual) { echo colorText('❌ Assertion failed:', 'red') . ' ' . $message . lineBreak(); echo "Expected: " . preFormat(var_export($expected, true)) . lineBreak(); @@ -44,19 +48,23 @@ function assertEqual($expected, $actual, $message = '') { } -function assertTrue($condition, $message = '') { +function assertTrue($condition, $message = '') +{ return assertEqual(true, $condition, $message ?: 'Expected condition to be true'); } -function assertFalse($condition, $message = '') { +function assertFalse($condition, $message = '') +{ return assertEqual(false, $condition, $message ?: 'Expected condition to be false'); } -function assertNull($value, $message = '') { +function assertNull($value, $message = '') +{ return assertEqual(null, $value, $message ?: 'Expected value to be null'); } -function assertNotNull($value, $message = '') { +function assertNotNull($value, $message = '') +{ if ($value === null) { echo colorText('❌ Assertion failed:', 'red') . ' ' . $message . lineBreak(); echo 'Value is null' . lineBreak(); @@ -68,39 +76,48 @@ function assertNotNull($value, $message = '') { } -function assertIsArray($value, $message = '') { +function assertIsArray($value, $message = '') +{ return assertEqual(true, is_array($value), $message ?: 'Expected value to be an array'); } -function assertIsObject($value, $message = '') { +function assertIsObject($value, $message = '') +{ return assertEqual(true, is_object($value), $message ?: 'Expected value to be an object'); } -function assertIsString($value, $message = '') { +function assertIsString($value, $message = '') +{ return assertEqual(true, is_string($value), $message ?: 'Expected value to be a string'); } -function assertIsInt($value, $message = '') { +function assertIsInt($value, $message = '') +{ return assertEqual(true, is_int($value), $message ?: 'Expected value to be an integer'); } -function assertIsFloat($value, $message = '') { +function assertIsFloat($value, $message = '') +{ return assertEqual(true, is_float($value), $message ?: 'Expected value to be a float'); } -function assertIsBool($value, $message = '') { +function assertIsBool($value, $message = '') +{ return assertEqual(true, is_bool($value), $message ?: 'Expected value to be a boolean'); } -function assertArrayHasKey($key, $array, $message = '') { +function assertArrayHasKey($key, $array, $message = '') +{ return assertEqual(true, array_key_exists($key, $array), $message ?: "Expected key '$key' in array"); } -function assertObjectHasProperty($property, $object, $message = '') { +function assertObjectHasProperty($property, $object, $message = '') +{ return assertEqual(true, property_exists($object, $property), $message ?: "Expected property '$property' in object"); } -function assertCount($expectedCount, $arrayOrCountable, $message = '') { +function assertCount($expectedCount, $arrayOrCountable, $message = '') +{ return assertEqual($expectedCount, count($arrayOrCountable), $message ?: "Expected count of $expectedCount"); } diff --git a/system/UnitTests/api/BookmarkTest/BookmarkTest.php b/system/UnitTests/api/BookmarkTest/BookmarkTest.php index 183305e49..27917cda0 100644 --- a/system/UnitTests/api/BookmarkTest/BookmarkTest.php +++ b/system/UnitTests/api/BookmarkTest/BookmarkTest.php @@ -3,7 +3,8 @@ function getParam($name, $default = null) { if (php_sapi_name() === 'cli') { // Parse CLI args for --key=value style - // php ./system/UnitTests/api/BookmarkTest/BookmarkTest.php --server=https://cis40.dev.technikum-wien.at --user=if23b236 --pw=FHCompleteDemo42! + // php ./system/UnitTests/api/BookmarkTest/BookmarkTest.php + // --server=https://cis40.dev.technikum-wien.at --user=if23b236 --pw=FHCompleteDemo42! global $argv; foreach ($argv as $arg) { @@ -39,15 +40,16 @@ echo $TEST_PW.LINE_BREAK; // "Unit Test" Script to Test API Controller frontend/v1/Bookmark.php by calling methods with curated inputs and checking // for the expected output -$URL = $server.'/cis.php/api/frontend/v1/Bookmark/'; +$URL = $server.'/cis.php/api/frontend/v1/Bookmark/'; testGetBookmarks($URL, 'getBookmarks', $TEST_USER, $TEST_PW); -$id = testInsertBookmark($URL, 'insert', $TEST_USER, $TEST_PW); -$id = testUpdateBookmark($URL, 'update', $TEST_USER, $TEST_PW, $id); -testDeleteBookmark($URL, 'delete', $TEST_USER, $TEST_PW, $id); +$id = testInsertBookmark($URL, 'insert', $TEST_USER, $TEST_PW); +$id = testUpdateBookmark($URL, 'update', $TEST_USER, $TEST_PW, $id); +testDeleteBookmark($URL, 'delete', $TEST_USER, $TEST_PW, $id); if (!IS_CLI) echo "
";
 
-function testGetBookmarks($url, $method, $user, $pw) {
+function testGetBookmarks($url, $method, $user, $pw)
+{
 	echo LINE_BREAK.LINE_BREAK."Test '".$method."' start ".LINE_BREAK;
 
 	try {
@@ -78,7 +80,8 @@ function testGetBookmarks($url, $method, $user, $pw) {
 	}
 }
 
-function testInsertBookmark($url, $method, $user, $pw) {
+function testInsertBookmark($url, $method, $user, $pw)
+{
 	echo LINE_BREAK.LINE_BREAK."Test '".$method."' start ".LINE_BREAK;
 	echo LINE_BREAK;
 	try {
@@ -102,9 +105,8 @@ function testInsertBookmark($url, $method, $user, $pw) {
 
 	$assertions = [];
 	$assertions[] = assertIsInt($resultPost->body->data);
-
 	$assertions[] = assertIsString($resultPost->body->meta->status);
-	$assertions[] = assertEqual("success",$resultPost->body->meta->status, "Response Status Success");
+	$assertions[] = assertEqual("success", $resultPost->body->meta->status, "Response Status Success");
 	if(allTrue($assertions)) {
 		echo "Test '".$method."' finished SUCCESS".LINE_BREAK;
 	} else {
@@ -115,7 +117,8 @@ function testInsertBookmark($url, $method, $user, $pw) {
 	return $resultPost->body->data;
 }
 
-function testDeleteBookmark($url, $method, $user, $pw, $id) {
+function testDeleteBookmark($url, $method, $user, $pw, $id)
+{
 	echo LINE_BREAK.LINE_BREAK."Test '".$method."' start \n".LINE_BREAK;
 	
 	try {
@@ -136,7 +139,7 @@ function testDeleteBookmark($url, $method, $user, $pw, $id) {
 	$assertions = [];
 	$assertions[] = assertIsString($resultPost->body->data);
 	$assertions[] = assertIsString($resultPost->body->meta->status);
-	$assertions[] = assertEqual("success",$resultPost->body->meta->status, "Response Status Success");
+	$assertions[] = assertEqual("success", $resultPost->body->meta->status, "Response Status Success");
 	if(allTrue($assertions)) {
 		echo "Test '".$method."' finished SUCCESS".LINE_BREAK;
 	} else {
@@ -145,7 +148,8 @@ function testDeleteBookmark($url, $method, $user, $pw, $id) {
 	}
 }
 
-function testUpdateBookmark($url, $method, $user, $pw, $id) {
+function testUpdateBookmark($url, $method, $user, $pw, $id)
+{
 	echo LINE_BREAK.LINE_BREAK."Test '".$method."' start ".LINE_BREAK;
 
 	try {
@@ -170,7 +174,7 @@ function testUpdateBookmark($url, $method, $user, $pw, $id) {
 	$assertions = [];
 	$assertions[] = assertIsString($resultPost->body->data);
 	$assertions[] = assertIsString($resultPost->body->meta->status);
-	$assertions[] = assertEqual("success",$resultPost->body->meta->status, "Response Status Success");
+	$assertions[] = assertEqual("success", $resultPost->body->meta->status, "Response Status Success");
 	if(allTrue($assertions)) {
 		echo "Test '".$method."' finished SUCCESS".LINE_BREAK;
 	} else {
@@ -181,26 +185,28 @@ function testUpdateBookmark($url, $method, $user, $pw, $id) {
 	return $resultPost->body->data;
 }
 
-function printResponse($resultPost) {
+function printResponse($resultPost)
+{
 	echo LINE_BREAK;
 	echo "Response Body:";
-	print_r($resultPost->body);
+	echo preFormat(var_export($resultPost->body, true));
 	echo LINE_BREAK;
 	echo "Raw Response:";
-	print_r($resultPost->raw_body);
+	echo preFormat(var_export($resultPost->raw_body, true));
 	echo LINE_BREAK;
 	echo "Status Code:";
-	print_r($resultPost->code);
+	echo preFormat(var_export($resultPost->code, true));
 	echo LINE_BREAK;
 	echo "Headers:";
-	print_r($resultPost->headers);
+	echo preFormat(var_export($resultPost->headers, true));
 	echo LINE_BREAK;
 }
 
-function allTrue($arr) {
-	return count(array_filter($arr, function($v) {
-			return $v === true;
-		})) === count($arr);
+function allTrue($arr)
+{
+	return count(array_filter($arr, function ($v) {
+		return $v === true;
+	})) === count($arr);
 }