object = $this->getMockBuilder(RefundMethodElectronicCertificate::class)->getMockForAbstractClass(); $this->assertTrue(class_exists(RefundMethodElectronicCertificate::class)); $this->assertInstanceOf(RefundMethodElectronicCertificate::class, $this->object); } /** * Test property "type" * @dataProvider validTypeDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testType(mixed $value): void { $instance = $this->getTestInstance(); self::assertNotNull($instance->getType()); self::assertNotNull($instance->type); self::assertContains($instance->getType(), ['electronic_certificate']); self::assertContains($instance->type, ['electronic_certificate']); } /** * Test invalid property "type" * @dataProvider invalidTypeDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidType(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setType($value); } /** * @return array[] * @throws Exception */ public function validTypeDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_type')); } /** * @return array[] * @throws Exception */ public function invalidTypeDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_type')); } /** * Test property "electronic_certificate" * @dataProvider validElectronicCertificateDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testElectronicCertificate(mixed $value): void { $instance = $this->getTestInstance(); self::assertEmpty($instance->getElectronicCertificate()); self::assertEmpty($instance->electronic_certificate); $instance->setElectronicCertificate($value); self::assertEquals($value, is_array($value) ? $instance->getElectronicCertificate()->toArray() : $instance->getElectronicCertificate()); self::assertEquals($value, is_array($value) ? $instance->electronic_certificate->toArray() : $instance->electronic_certificate); if (!empty($value)) { self::assertNotNull($instance->getElectronicCertificate()); self::assertNotNull($instance->electronic_certificate); } } /** * Test invalid property "electronic_certificate" * @dataProvider invalidElectronicCertificateDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidElectronicCertificate(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setElectronicCertificate($value); } /** * @return array[] * @throws Exception */ public function validElectronicCertificateDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_electronic_certificate')); } /** * @return array[] * @throws Exception */ public function invalidElectronicCertificateDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_electronic_certificate')); } /** * Test property "articles" * @dataProvider validArticlesDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testArticles(mixed $value): void { $instance = $this->getTestInstance(); self::assertEmpty($instance->getArticles()); self::assertEmpty($instance->articles); self::assertIsObject($instance->getArticles()); self::assertIsObject($instance->articles); self::assertCount(0, $instance->getArticles()); self::assertCount(0, $instance->articles); $instance->setArticles($value); if (!empty($value)) { self::assertNotNull($instance->getArticles()); self::assertNotNull($instance->articles); foreach ($value as $key => $element) { if (is_array($element) && !empty($element)) { self::assertEquals($element, $instance->getArticles()[$key]->toArray()); self::assertEquals($element, $instance->articles[$key]->toArray()); self::assertIsArray($instance->getArticles()[$key]->toArray()); self::assertIsArray($instance->articles[$key]->toArray()); } if (is_object($element) && !empty($element)) { self::assertEquals($element, $instance->getArticles()->get($key)); self::assertIsObject($instance->getArticles()->get($key)); self::assertIsObject($instance->articles->get($key)); self::assertIsObject($instance->getArticles()); self::assertIsObject($instance->articles); } } self::assertCount(count($value), $instance->getArticles()); self::assertCount(count($value), $instance->articles); } } /** * Test invalid property "articles" * @dataProvider invalidArticlesDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidArticles(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setArticles($value); } /** * @return array[] * @throws Exception */ public function validArticlesDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_articles')); } /** * @return array[] * @throws Exception */ public function invalidArticlesDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_articles')); } }