Uuid::uuid7()->toString(), 'hashcode' => Uuid::uuid4()->toString(), 'email' => new Email('owner@example.com'), ]); Employee::forceCreate([ 'id' => 301, 'customer_id' => $customer->id, 'matricule' => new Matricule('1000301'), 'nom' => 'Doe', 'prenom' => 'John', 'code' => new Code('ABCDEF31'), 'etablissement' => 'ETAB', 'site' => 'SITE', 'service' => '101', 'created_at' => CarbonImmutable::now(), 'updated_at' => CarbonImmutable::now(), ]); $order = Order::forceCreate([ 'id' => Uuid::uuid7()->toString(), 'reference' => new OrderReference(Uuid::uuid7()), 'status' => OrderStatus::VALIDATED->value, 'total' => new Money(1000, new Currency('EUR')), 'employee' => new OrderEmployee(new Matricule('1000301'), 'John', 'Doe', new ShopperEstablishmentCode('FAC01'), new ShopperSiteCode('SITE'), new ShopperServiceCode('101')), 'delivery_address' => new DeliveryAddress('Name', 'Addr', '00000', 'City'), ]); $service = new OrderService(); // WHEN $result = $service->isOrderOwnedBy($order, $customer); // THEN expect($result)->toBeTrue(); }); it('returns false if order is not owned by customer', function () { // GIVEN $customer = Customer::forceCreate([ 'id' => Uuid::uuid7()->toString(), 'hashcode' => Uuid::uuid4()->toString(), 'email' => new Email('notowner@example.com'), ]); Employee::forceCreate([ 'id' => 302, 'customer_id' => $customer->id, 'matricule' => new Matricule('1000302'), 'nom' => 'Doe', 'prenom' => 'John', 'code' => new Code('ABCDEF32'), 'etablissement' => 'ETAB', 'site' => 'SITE', 'service' => '101', 'created_at' => CarbonImmutable::now(), 'updated_at' => CarbonImmutable::now(), ]); $order = Order::forceCreate([ 'id' => Uuid::uuid7()->toString(), 'reference' => new OrderReference(Uuid::uuid7()), 'status' => OrderStatus::VALIDATED->value, 'total' => new Money(1000, new Currency('EUR')), 'employee' => new OrderEmployee(new Matricule('1000999'), 'Other', 'Person', new ShopperEstablishmentCode('FAC01'), new ShopperSiteCode('SITE'), new ShopperServiceCode('101')), 'delivery_address' => new DeliveryAddress('Name', 'Addr', '00000', 'City'), ]); $service = new OrderService(); // WHEN $result = $service->isOrderOwnedBy($order, $customer); // THEN expect($result)->toBeFalse(); }); it('returns false if customer has no employee', function () { // GIVEN $customer = Customer::forceCreate([ 'id' => Uuid::uuid7()->toString(), 'hashcode' => Uuid::uuid4()->toString(), 'email' => new Email('noemp@example.com'), ]); $order = Order::forceCreate([ 'id' => Uuid::uuid7()->toString(), 'reference' => new OrderReference(Uuid::uuid7()), 'status' => OrderStatus::VALIDATED->value, 'total' => new Money(1000, new Currency('EUR')), 'employee' => new OrderEmployee(new Matricule('1000999'), 'Other', 'Person', new ShopperEstablishmentCode('FAC01'), new ShopperSiteCode('SITE'), new ShopperServiceCode('101')), 'delivery_address' => new DeliveryAddress('Name', 'Addr', '00000', 'City'), ]); $service = new OrderService(); // WHEN $result = $service->isOrderOwnedBy($order, $customer); // THEN expect($result)->toBeFalse(); }); });