rules()); $this->assertTrue($validator->fails()); } public function test_missing_quantity_fails(): void { $data = [ 'note' => 'Отгрузка произведена', ]; $request = new ShipSparePartOrderRequest(); $validator = Validator::make($data, $request->rules()); $this->assertTrue($validator->fails()); $this->assertArrayHasKey('quantity', $validator->errors()->toArray()); } public function test_missing_note_fails(): void { $data = [ 'quantity' => 5, ]; $request = new ShipSparePartOrderRequest(); $validator = Validator::make($data, $request->rules()); $this->assertTrue($validator->fails()); $this->assertArrayHasKey('note', $validator->errors()->toArray()); } public function test_quantity_zero_fails_min_rule(): void { $data = [ 'quantity' => 0, 'note' => 'Отгрузка', ]; $request = new ShipSparePartOrderRequest(); $validator = Validator::make($data, $request->rules()); $this->assertTrue($validator->fails()); $this->assertArrayHasKey('quantity', $validator->errors()->toArray()); } public function test_quantity_negative_fails_min_rule(): void { $data = [ 'quantity' => -3, 'note' => 'Отгрузка', ]; $request = new ShipSparePartOrderRequest(); $validator = Validator::make($data, $request->rules()); $this->assertTrue($validator->fails()); $this->assertArrayHasKey('quantity', $validator->errors()->toArray()); } public function test_quantity_must_be_integer(): void { $data = [ 'quantity' => 'five', 'note' => 'Отгрузка', ]; $request = new ShipSparePartOrderRequest(); $validator = Validator::make($data, $request->rules()); $this->assertTrue($validator->fails()); $this->assertArrayHasKey('quantity', $validator->errors()->toArray()); } public function test_note_must_be_string(): void { $data = [ 'quantity' => 5, 'note' => ['not', 'a', 'string'], ]; $request = new ShipSparePartOrderRequest(); $validator = Validator::make($data, $request->rules()); $this->assertTrue($validator->fails()); $this->assertArrayHasKey('note', $validator->errors()->toArray()); } public function test_valid_minimal_data_passes(): void { $data = [ 'quantity' => 1, 'note' => 'test', ]; $request = new ShipSparePartOrderRequest(); $validator = Validator::make($data, $request->rules()); $this->assertFalse($validator->fails()); } public function test_valid_full_data_passes(): void { $data = [ 'quantity' => 15, 'note' => 'Отгружено на объект ул. Ленина, 5 — партия № 2026/03', ]; $request = new ShipSparePartOrderRequest(); $validator = Validator::make($data, $request->rules()); $this->assertFalse($validator->fails()); } }