Ejemplo n.º 1
0
 public function testItCanCheckIfEqual()
 {
     $sort1 = new Sort();
     $sort2 = new Sort();
     $sort1->setOrderFor('size', new Order('ASC'));
     $sort2->setOrderFor('size', new Order('ASC'));
     $this->assertTrue($sort1->equals($sort2));
     $this->assertTrue($sort2->equals($sort1));
 }
Ejemplo n.º 2
0
 /**
  * Pageable constructor.
  *
  * @param                      $pageNumber
  * @param                      $pageSize
  * @param SortInterface|null   $sort
  * @param FilterInterface|null $filter
  * @param FieldsInterface|null $fields
  * @param FieldsInterface|null $distinctFields
  */
 public function __construct($pageNumber, $pageSize, SortInterface $sort = null, FilterInterface $filter = null, FieldsInterface $fields = null, FieldsInterface $distinctFields = null)
 {
     $this->pageNumber = (int) $pageNumber;
     $this->pageSize = (int) $pageSize;
     $this->sort = $sort ? $sort : Sort::null();
     $this->filter = $filter ? $filter : Filter::null();
     $this->fields = $fields ? $fields : Fields::null();
     $this->distinctFields = $distinctFields ? $distinctFields : Fields::null();
 }
Ejemplo n.º 3
0
 /**
  * Page constructor.
  *
  * @param array           $elements
  * @param                 $totalElements
  * @param                 $pageNumber
  * @param                 $totalPages
  * @param SortInterface   $sort
  * @param FilterInterface $filter
  * @param FieldsInterface $fields
  */
 public function __construct(array $elements, $totalElements, $pageNumber, $totalPages, SortInterface $sort = null, FilterInterface $filter = null, FieldsInterface $fields = null)
 {
     $this->elements = ImmutableTypedCollection::fromArray(array_values($elements));
     $this->totalElements = (int) $totalElements;
     $this->pageNumber = (int) $pageNumber;
     $this->totalPages = (int) $totalPages;
     $this->sort = $sort ? $sort : Sort::null();
     $this->filter = $filter ? $filter : Filter::null();
     $this->fields = $fields ? $fields : Fields::null();
 }
Ejemplo n.º 4
0
use NilPortugues\Example\AutoGeneratedId\User;
use NilPortugues\Example\AutoGeneratedId\UserId;
use NilPortugues\Example\AutoGeneratedId\UserMapping;
use NilPortugues\Example\AutoGeneratedId\UserRepository;
use NilPortugues\Foundation\Domain\Model\Repository\Filter;
use NilPortugues\Foundation\Domain\Model\Repository\Order;
use NilPortugues\Foundation\Domain\Model\Repository\Sort;
include_once __DIR__ . '/../../vendor/autoload.php';
$pdo = new PDO('sqlite::memory:');
$pdo->exec('
CREATE TABLE users (
  user_id INTEGER PRIMARY KEY AUTOINCREMENT,  
  username CHAR(255),
  public_username CHAR(255),
  email CHAR(255),
  created_at DATETIME
);');
$mapping = new UserMapping();
$repository = new UserRepository($pdo, $mapping);
$user = new User(null, 'nilportugues', 'Nil', '*****@*****.**', new DateTime('2016-01-11'));
$user = $repository->add($user);
$userId = new UserId($user->id());
print_r($repository->find($userId));
echo PHP_EOL;
$filter = new Filter();
$filter->must()->beGreaterThanOrEqual('registeredOn.date', '2016-01-01 00:00:00');
$filter->must()->beLessThan('registeredOn.date', '2016-02-01 00:00:00');
$sort = new Sort();
$sort->setOrderFor('registeredOn.date', new Order('ASC'));
print_r($repository->findBy($filter, $sort));
echo PHP_EOL;
        $table->string('name', 255);
        $table->integer('id');
        $table->primary('id');
        $table->timestamps();
    });
    $model = new UserModel();
    $model->name = 'Admin User';
    $model->save();
    for ($i = 2; $i <= 20; ++$i) {
        $model = new UserModel();
        $model->name = 'Dummy User ' . $i;
        $model->created_at = (new DateTime())->setDate(2016, rand(1, 12), rand(1, 27));
        $model->save();
    }
}
//-------------------------------------------------------------------------------------------------------------
// - getUserAction
//-------------------------------------------------------------------------------------------------------------
$userAdapter = new UserAdapter();
$repository = new UserRepository($userAdapter);
$userId = new UserId(1);
print_r($repository->find($userId));
//-------------------------------------------------------------------------------------------------------------
// - getUsersRegisteredLastMonth
//-------------------------------------------------------------------------------------------------------------
$filter = new Filter();
$filter->must()->beGreaterThanOrEqual('created_at', '2016-01-01');
$filter->must()->beLessThan('created_at', '2016-02-01');
$sort = new Sort();
$sort->setOrderFor('created_at', new Order('ASC'));
print_r($repository->findBy($filter, $sort));