assertAtolable( new CorrectionInfo(CorrectionTypes::SELF, '01.01.2021', $number = Helpers::randomStr()), [ 'type' => CorrectionTypes::SELF, 'base_date' => '01.01.2021', 'base_number' => $number, ] ); } /** * Тестирует исключение при некорректном типе * * @covers \AtolOnline\Entities\CorrectionInfo * @covers \AtolOnline\Entities\CorrectionInfo::setType * @covers \AtolOnline\Enums\CorrectionTypes::isValid * @covers \AtolOnline\Exceptions\InvalidEnumValueException * @return void * @throws EmptyCorrectionNumberException * @throws InvalidCorrectionDateException * @throws InvalidEnumValueException */ public function testInvalidEnumValueException(): void { $this->expectException(InvalidEnumValueException::class); $this->expectExceptionMessage('Некорректное значение AtolOnline\Enums\CorrectionTypes::wrong_value'); new CorrectionInfo('wrong_value', '01.01.2021', Helpers::randomStr()); } /** * Тестирует исключение при некорректной дате * * @covers \AtolOnline\Entities\CorrectionInfo * @covers \AtolOnline\Entities\CorrectionInfo::setDate * @covers \AtolOnline\Enums\CorrectionTypes::isValid * @covers \AtolOnline\Exceptions\InvalidCorrectionDateException * @return void * @throws EmptyCorrectionNumberException * @throws InvalidCorrectionDateException * @throws InvalidEnumValueException */ public function testInvalidCorrectionDateException(): void { $this->expectException(InvalidCorrectionDateException::class); new CorrectionInfo(CorrectionTypes::SELF, Helpers::randomStr(), Helpers::randomStr()); } /** * Тестирует исключение при некорректной дате * * @covers \AtolOnline\Entities\CorrectionInfo * @covers \AtolOnline\Entities\CorrectionInfo::setNumber * @covers \AtolOnline\Enums\CorrectionTypes::isValid * @covers \AtolOnline\Exceptions\EmptyCorrectionNumberException * @return void */ public function testEmptyCorrectionNumberException(): void { $this->expectException(EmptyCorrectionNumberException::class); new CorrectionInfo(CorrectionTypes::SELF, '01.01.2021', "\n\r\t\0"); } }