object = $this->getMockBuilder(SelfEmployed::class)->getMockForAbstractClass(); $this->assertTrue(class_exists(SelfEmployed::class)); $this->assertInstanceOf(SelfEmployed::class, $this->object); } /** * Test property "id" * @dataProvider validIdDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testId(mixed $value): void { $instance = $this->getTestInstance(); $instance->setId($value); self::assertNotNull($instance->getId()); self::assertNotNull($instance->id); self::assertEquals($value, is_array($value) ? $instance->getId()->toArray() : $instance->getId()); self::assertEquals($value, is_array($value) ? $instance->id->toArray() : $instance->id); self::assertLessThanOrEqual(50, is_string($instance->getId()) ? mb_strlen($instance->getId()) : $instance->getId()); self::assertLessThanOrEqual(50, is_string($instance->id) ? mb_strlen($instance->id) : $instance->id); self::assertGreaterThanOrEqual(36, is_string($instance->getId()) ? mb_strlen($instance->getId()) : $instance->getId()); self::assertGreaterThanOrEqual(36, is_string($instance->id) ? mb_strlen($instance->id) : $instance->id); } /** * Test invalid property "id" * @dataProvider invalidIdDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidId(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setId($value); } /** * @return array[] * @throws Exception */ public function validIdDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_id')); } /** * @return array[] * @throws Exception */ public function invalidIdDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_id')); } /** * Test property "status" * @dataProvider validStatusDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testStatus(mixed $value): void { $instance = $this->getTestInstance(); $instance->setStatus($value); self::assertNotNull($instance->getStatus()); self::assertNotNull($instance->status); self::assertEquals($value, is_array($value) ? $instance->getStatus()->toArray() : $instance->getStatus()); self::assertEquals($value, is_array($value) ? $instance->status->toArray() : $instance->status); self::assertContains($instance->getStatus(), ['pending', 'confirmed', 'canceled', 'unregistered']); self::assertContains($instance->status, ['pending', 'confirmed', 'canceled', 'unregistered']); } /** * Test invalid property "status" * @dataProvider invalidStatusDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidStatus(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setStatus($value); } /** * @return array[] * @throws Exception */ public function validStatusDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_status')); } /** * @return array[] * @throws Exception */ public function invalidStatusDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_status')); } /** * Test property "created_at" * @dataProvider validCreatedAtDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testCreatedAt(mixed $value): void { $instance = $this->getTestInstance(); $instance->setCreatedAt($value); self::assertNotNull($instance->getCreatedAt()); self::assertNotNull($instance->created_at); if ($value instanceof Datetime) { self::assertEquals($value, $instance->getCreatedAt()); self::assertEquals($value, $instance->created_at); } else { self::assertEquals(!empty($value) ? new Datetime($value) : $value, $instance->getCreatedAt()); self::assertEquals(!empty($value) ? new Datetime($value) : $value, $instance->created_at); } } /** * Test invalid property "created_at" * @dataProvider invalidCreatedAtDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidCreatedAt(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setCreatedAt($value); } /** * @return array[] * @throws Exception */ public function validCreatedAtDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_created_at')); } /** * @return array[] * @throws Exception */ public function invalidCreatedAtDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_created_at')); } /** * Test property "itn" * @dataProvider validItnDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testItn(mixed $value): void { $instance = $this->getTestInstance(); self::assertEmpty($instance->getItn()); self::assertEmpty($instance->itn); $instance->setItn($value); self::assertEquals($value, is_array($value) ? $instance->getItn()->toArray() : $instance->getItn()); self::assertEquals($value, is_array($value) ? $instance->itn->toArray() : $instance->itn); if (!empty($value)) { self::assertNotNull($instance->getItn()); self::assertNotNull($instance->itn); self::assertMatchesRegularExpression("/^\d{12}$/", $instance->getItn()); self::assertMatchesRegularExpression("/^\d{12}$/", $instance->itn); } } /** * Test invalid property "itn" * @dataProvider invalidItnDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidItn(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setItn($value); } /** * @return array[] * @throws Exception */ public function validItnDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_itn')); } /** * @return array[] * @throws Exception */ public function invalidItnDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_itn')); } /** * Test property "phone" * @dataProvider validPhoneDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testPhone(mixed $value): void { $instance = $this->getTestInstance(); self::assertEmpty($instance->getPhone()); self::assertEmpty($instance->phone); $instance->setPhone($value); self::assertEquals($value, is_array($value) ? $instance->getPhone()->toArray() : $instance->getPhone()); self::assertEquals($value, is_array($value) ? $instance->phone->toArray() : $instance->phone); if (!empty($value)) { self::assertNotNull($instance->getPhone()); self::assertNotNull($instance->phone); self::assertMatchesRegularExpression("/^[0-9]{4,15}$/", $instance->getPhone()); self::assertMatchesRegularExpression("/^[0-9]{4,15}$/", $instance->phone); } } /** * Test invalid property "phone" * @dataProvider invalidPhoneDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidPhone(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setPhone($value); } /** * @return array[] * @throws Exception */ public function validPhoneDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_phone')); } /** * @return array[] * @throws Exception */ public function invalidPhoneDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_phone')); } /** * Test property "confirmation" * @dataProvider validConfirmationDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testConfirmation(mixed $value): void { $instance = $this->getTestInstance(); self::assertEmpty($instance->getConfirmation()); self::assertEmpty($instance->confirmation); $instance->setConfirmation($value); self::assertEquals($value, is_array($value) ? $instance->getConfirmation()->toArray() : $instance->getConfirmation()); self::assertEquals($value, is_array($value) ? $instance->confirmation->toArray() : $instance->confirmation); if (!empty($value)) { self::assertNotNull($instance->getConfirmation()); self::assertNotNull($instance->confirmation); } } /** * Test invalid property "confirmation" * @dataProvider invalidConfirmationDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidConfirmation(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setConfirmation($value); } /** * @return array[] * @throws Exception */ public function validConfirmationDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_confirmation')); } /** * @return array[] * @throws Exception */ public function invalidConfirmationDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_confirmation')); } /** * Test property "test" * @dataProvider validTestDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testTest(mixed $value): void { $instance = $this->getTestInstance(); $instance->setTest($value); self::assertNotNull($instance->getTest()); self::assertNotNull($instance->test); self::assertEquals($value, is_array($value) ? $instance->getTest()->toArray() : $instance->getTest()); self::assertEquals($value, is_array($value) ? $instance->test->toArray() : $instance->test); self::assertIsBool($instance->getTest()); self::assertIsBool($instance->test); } /** * Test invalid property "test" * @dataProvider invalidTestDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidTest(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setTest($value); } /** * @return array[] * @throws Exception */ public function validTestDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_test')); } /** * @return array[] * @throws Exception */ public function invalidTestDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_test')); } }