| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- <?php
- namespace Tests\Unit\Requests;
- use App\Http\Requests\StoreContractRequest;
- use Illuminate\Support\Facades\Validator;
- use Tests\TestCase;
- class StoreContractRequestTest extends TestCase
- {
- public function test_empty_data_fails(): void
- {
- $request = new StoreContractRequest();
- $validator = Validator::make([], $request->rules());
- $this->assertTrue($validator->fails());
- }
- public function test_missing_contract_number_fails(): void
- {
- $data = [
- 'contract_date' => '2026-01-15',
- 'year' => 2026,
- ];
- $request = new StoreContractRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertTrue($validator->fails());
- $this->assertArrayHasKey('contract_number', $validator->errors()->toArray());
- }
- public function test_missing_contract_date_fails(): void
- {
- $data = [
- 'contract_number' => 'ДГ-2026/001',
- 'year' => 2026,
- ];
- $request = new StoreContractRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertTrue($validator->fails());
- $this->assertArrayHasKey('contract_date', $validator->errors()->toArray());
- }
- public function test_missing_year_fails(): void
- {
- $data = [
- 'contract_number' => 'ДГ-2026/001',
- 'contract_date' => '2026-01-15',
- ];
- $request = new StoreContractRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertTrue($validator->fails());
- $this->assertArrayHasKey('year', $validator->errors()->toArray());
- }
- public function test_invalid_contract_date_format_fails(): void
- {
- $data = [
- 'contract_number' => 'ДГ-2026/001',
- 'contract_date' => 'not-a-date',
- 'year' => 2026,
- ];
- $request = new StoreContractRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertTrue($validator->fails());
- $this->assertArrayHasKey('contract_date', $validator->errors()->toArray());
- }
- public function test_year_below_min_fails(): void
- {
- $data = [
- 'contract_number' => 'ДГ-1999/001',
- 'contract_date' => '1999-06-01',
- 'year' => 1999,
- ];
- $request = new StoreContractRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertTrue($validator->fails());
- $this->assertArrayHasKey('year', $validator->errors()->toArray());
- }
- public function test_year_at_min_boundary_passes(): void
- {
- $data = [
- 'contract_number' => 'ДГ-2000/001',
- 'contract_date' => '2000-01-01',
- 'year' => 2000,
- ];
- $request = new StoreContractRequest();
- $validator = Validator::make($data, $request->rules());
- $errors = $validator->errors()->toArray();
- $this->assertArrayNotHasKey('year', $errors);
- }
- public function test_year_must_be_numeric(): void
- {
- $data = [
- 'contract_number' => 'ДГ-2026/001',
- 'contract_date' => '2026-01-15',
- 'year' => 'two-thousand',
- ];
- $request = new StoreContractRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertTrue($validator->fails());
- $this->assertArrayHasKey('year', $validator->errors()->toArray());
- }
- public function test_valid_data_passes(): void
- {
- $data = [
- 'contract_number' => 'ДГ-2026/042',
- 'contract_date' => '2026-02-20',
- 'year' => 2026,
- ];
- $request = new StoreContractRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertFalse($validator->fails());
- }
- public function test_contract_number_must_be_string(): void
- {
- $data = [
- 'contract_number' => ['not', 'a', 'string'],
- 'contract_date' => '2026-01-15',
- 'year' => 2026,
- ];
- $request = new StoreContractRequest();
- $validator = Validator::make($data, $request->rules());
- $this->assertTrue($validator->fails());
- $this->assertArrayHasKey('contract_number', $validator->errors()->toArray());
- }
- }
|