<?php require_once(__DIR__ . '/../lib/RedBeanPHP/rb.php'); spl_autoload_register(function($class) { $file = '../src/' . str_replace('\\','/', $class) . '.php'; if(file_exists($file)) { require_once($file); } }); /* In lieu of unit tests. */ use FaZeBook\Data; use FaZeBook\LikeType; use FaZeBook\PostType; function xassert($bool) { if(!$bool) { throw new Exception("Assertion failed"); } } function millitime() { return round(microtime(true) * 1000); } $start = millitime(); $data = Data::getTestingInstance(); // Test user deletion $user = $data->addUser("a", "b", "q@q", "q"); $data->deleteUser($user); xassert(is_null($data->getUserByEmail("q@q"))); // Test user creation and modification $user = $data->addUser("a", "b", "q@q", "q"); $user = $data->getUserByEmail("q@q"); xassert(is_null($user->getPhoneNumber())); $user->setBirthday(new \DateTimeImmutable("2000-01-01")); xassert($user->getBirthday()->format("Y-m-d") === "2000-01-01"); xassert($user->getPoliticalDirection() === 0); $user->setPoliticalDirection(42); xassert($user->getPoliticalDirection() === 42); xassert(is_null($user->getAvatarUrl())); $user->setAvatarUrl("https://i.imgur.com/8AHziKn.jpg"); xassert($user->getAvatarUrl() === "https://i.imgur.com/8AHziKn.jpg"); // Test post creation $post = $data->addPost($user, $user, false, PostType::TEXT, "hi999"); xassert($post->getAuthor()->getId() == $user->getId()); $found = false; foreach($data->listPagePosts($user, true) as $post) { if($post->getContent() === "hi999") { $found = true; } } xassert($found); // Test friendships $user2 = $data->addUser("a", "b", "x@x", "q"); xassert(!$data->isFriend($user, $user2)); $data->setFriend($user, $user2); xassert($data->isFriend($user, $user2)); // Test likes xassert($data->getLike($user, $user2) === null); $data->setLike($user, $user2, LikeType::LIKE); xassert($data->getLike($user, $user2) === LikeType::LIKE); xassert($data->getLike($user2, $user) === null); $data->setLike($user, $user2, LikeType::DISLIKE); $data->deleteLike($user2, $user); xassert($data->getLike($user, $user2) === LikeType::DISLIKE); $data->deleteLike($user, $user2); xassert($data->getLike($user, $user2) === null); // Test messages $message = $data->addMessage($user, $user2, "hi"); xassert($message->getSender()->getId() == $user->getId()); xassert($message->getContent() === "hi"); $message->setContent("test"); xassert($message->getContent() === "test"); xassert(!is_null($message->getTime())); xassert(!$message->isRead()); $message->markRead(); xassert($message->isRead()); // Test activity xassert(sizeof($data->listActivity(1)) === 0); $activity = $data->addActivity("foo"); xassert($activity->getEvent() === "foo"); xassert(array_values($data->listActivity(1))[0]->getEvent() === "foo"); $end = millitime(); ?> ✔ All tests passed (<?= $end - $start; ?> ms)