object = $this->getMockBuilder(PaymentDataSbp::class)->getMockForAbstractClass(); $this->assertTrue(class_exists(PaymentDataSbp::class)); $this->assertInstanceOf(PaymentDataSbp::class, $this->object); } /** * Test property "type" * * @return void * @throws Exception */ public function testType(): void { $instance = $this->getTestInstance(); self::assertNotNull($instance->getType()); self::assertNotNull($instance->type); self::assertContains($instance->getType(), ['sbp']); self::assertContains($instance->type, ['sbp']); } /** * Test property "qrc_id" * @dataProvider validQrcIdDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testQrcId(mixed $value): void { $instance = $this->getTestInstance(); self::assertEmpty($instance->getQrcId()); self::assertEmpty($instance->qrcId); self::assertEmpty($instance->qrc_id); $instance->setQrcId($value); self::assertEquals($value, $instance->getQrcId()); self::assertEquals($value, $instance->qrc_id); self::assertEquals($value, $instance->qrcId); if (!empty($value)) { self::assertNotNull($instance->getQrcId()); self::assertNotNull($instance->qrcId); self::assertNotNull($instance->qrc_id); self::assertMatchesRegularExpression("/[A-Za-z0-9]{32}/", $instance->getQrcId()); self::assertMatchesRegularExpression("/[A-Za-z0-9]{32}/", $instance->qrcId); self::assertMatchesRegularExpression("/[A-Za-z0-9]{32}/", $instance->qrc_id); } } /** * Test invalid property "qrc_id" * @dataProvider invalidQrcIdDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidQrcId(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setQrcId($value); } /** * @return array[] * @throws Exception */ public function validQrcIdDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_qrc_id')); } /** * @return array[] * @throws Exception */ public function invalidQrcIdDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_qrc_id')); } /** * Test property "expires_at" * @dataProvider validExpiresAtDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testExpiresAt(mixed $value): void { $instance = $this->getTestInstance(); self::assertEmpty($instance->getQrcId()); self::assertEmpty($instance->expiresAt); self::assertEmpty($instance->expires_at); $instance->setExpiresAt($value); if (!empty($value)) { self::assertNotNull($instance->getExpiresAt()); self::assertNotNull($instance->expiresAt); self::assertNotNull($instance->expires_at); if ($value instanceof Datetime) { self::assertEquals($value, $instance->getExpiresAt()); self::assertEquals($value, $instance->expiresAt); self::assertEquals($value, $instance->expires_at); } else { self::assertEquals(new Datetime($value), $instance->getExpiresAt()); self::assertEquals(new Datetime($value), $instance->expiresAt); self::assertEquals(new Datetime($value), $instance->expires_at); } } } /** * Test invalid property "expires_at" * @dataProvider invalidExpiresAtDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidExpiresAt(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setExpiresAt($value); } /** * @return array[] * @throws Exception */ public function validExpiresAtDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_expires_at')); } /** * @return array[] * @throws Exception */ public function invalidExpiresAtDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_expires_at')); } }