Skip to content

Instantly share code, notes, and snippets.

View filipfilipovich's full-sized avatar

Filip Filipovic filipfilipovich

  • Croatia
View GitHub Profile
<?php
beforeAll(function () {
// Executes first, before any of tests are run
// Eg. can be used to set up a testing database
});
beforeEach(function () {
$this->bookRepository = new BookRepository();
});
<?php
test('calculation', function () {
$result = 2 * 4;
expect($result)
->toBeInt() // Assert that the result is an integer
->toBe(8) // Assert that the result value is 8
->not->toBeJson() // Using "not" modifier, asserting that the value isn't JSON
->not->toBe(5); // Another usage example of "not" modifier
<?php
test('user authorization', function () {
$auth = Mockery::mock(Auth::class);
$auth->shouldReceive('login');
$auth->shouldReceive('authorize');
$user = new UserRepository($auth);
expect($user->getAuthorized())
->not->toBeEmpty();
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*/
@filipfilipovich
filipfilipovich / Book.php
Created May 26, 2023 10:22
Book model class
<?php
namespace App\Models;
use DateTimeInterface;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
/**
* App\Models\Book
@filipfilipovich
filipfilipovich / BookFactory.php
Created May 26, 2023 10:25
BookFactory class
<?php
namespace Database\Factories;
use App\Models\Book;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends Factory<Book>
*/
@filipfilipovich
filipfilipovich / BookRepository.php
Created May 26, 2023 10:47
BookRepository class
<?php
declare(strict_types=1);
namespace App\Repositories;
use App\Models\Book;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
@filipfilipovich
filipfilipovich / GetBooksController.php
Created May 26, 2023 11:27
GetBooksController class
<?php
namespace App\Http\Controllers;
use App\Repositories\BookRepository;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
class GetBooksController extends Controller
{
@filipfilipovich
filipfilipovich / GetBookByIsbnController.php
Created May 26, 2023 11:29
GetBookByIsbnController class
<?php
namespace App\Http\Controllers;
use App\Repositories\BookRepository;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
class GetBookByIsbnController extends Controller
{
@filipfilipovich
filipfilipovich / api.php
Created May 26, 2023 11:40
API routes file (routes/api.php)
<?php
use App\Http\Controllers\GetBookByIsbnController;
use App\Http\Controllers\GetBooksController;
use Illuminate\Support\Facades\Route;
Route::get('/books', GetBooksController::class);
Route::get('/books/{isbn}', GetBookByIsbnController::class)->where('isbn', '[0-9]{10,13}');