| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- <?php
- namespace Tests\Unit\Requests;
- use App\Http\Requests\StoreReclamationDetailsRequest;
- use Illuminate\Support\Facades\Validator;
- use Tests\TestCase;
- class StoreReclamationDetailsRequestTest extends TestCase
- {
- public function test_empty_data_passes_because_all_fields_are_nullable(): void
- {
- $request = new StoreReclamationDetailsRequest();
- $validator = Validator::make([], $request->rules());
- $this->assertFalse($validator->fails());
- }
- public function test_null_values_pass(): void
- {
- $data = [
- 'name' => null,
- 'quantity' => null,
- 'with_documents' => null,
- ];
- $request = new StoreReclamationDetailsRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertFalse($validator->fails());
- }
- public function test_name_as_array_of_strings_passes(): void
- {
- $data = [
- 'name' => ['Деталь А', 'Деталь Б', null],
- ];
- $request = new StoreReclamationDetailsRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertFalse($validator->fails());
- }
- public function test_name_as_non_array_fails(): void
- {
- $data = [
- 'name' => 'not-an-array',
- ];
- $request = new StoreReclamationDetailsRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertTrue($validator->fails());
- $this->assertArrayHasKey('name', $validator->errors()->toArray());
- }
- public function test_quantity_as_array_of_strings_passes(): void
- {
- $data = [
- 'quantity' => ['5', '10', null],
- ];
- $request = new StoreReclamationDetailsRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertFalse($validator->fails());
- }
- public function test_quantity_as_non_array_fails(): void
- {
- $data = [
- 'quantity' => 'not-an-array',
- ];
- $request = new StoreReclamationDetailsRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertTrue($validator->fails());
- $this->assertArrayHasKey('quantity', $validator->errors()->toArray());
- }
- public function test_with_documents_as_array_of_booleans_passes(): void
- {
- $data = [
- 'with_documents' => [true, false, null],
- ];
- $request = new StoreReclamationDetailsRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertFalse($validator->fails());
- }
- public function test_with_documents_as_non_array_fails(): void
- {
- $data = [
- 'with_documents' => 'not-an-array',
- ];
- $request = new StoreReclamationDetailsRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertTrue($validator->fails());
- $this->assertArrayHasKey('with_documents', $validator->errors()->toArray());
- }
- public function test_with_documents_items_must_be_boolean(): void
- {
- $data = [
- 'with_documents' => ['not-boolean', 'also-not-boolean'],
- ];
- $request = new StoreReclamationDetailsRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertTrue($validator->fails());
- }
- public function test_complete_valid_data_passes(): void
- {
- $data = [
- 'name' => ['Шарнир', 'Болт М8'],
- 'quantity' => ['2', '10'],
- 'with_documents' => [true, false],
- ];
- $request = new StoreReclamationDetailsRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertFalse($validator->fails());
- }
- }
|