object = $this->getMockBuilder(PaymentMethodAlfaBank::class)->getMockForAbstractClass(); $this->assertTrue(class_exists(PaymentMethodAlfaBank::class)); $this->assertInstanceOf(PaymentMethodAlfaBank::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(), ['alfabank']); self::assertContains($instance->type, ['alfabank']); } /** * 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 invalidTypeDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_type')); } /** * Test property "login" * @dataProvider validLoginDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testLogin(mixed $value): void { $instance = $this->getTestInstance(); self::assertEmpty($instance->getLogin()); self::assertEmpty($instance->login); $instance->setLogin($value); self::assertEquals($value, is_array($value) ? $instance->getLogin()->toArray() : $instance->getLogin()); self::assertEquals($value, is_array($value) ? $instance->login->toArray() : $instance->login); if (!empty($value)) { self::assertNotNull($instance->getLogin()); self::assertNotNull($instance->login); } } /** * Test invalid property "login" * @dataProvider invalidLoginDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidLogin(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setLogin($value); } /** * @return array[] * @throws Exception */ public function validLoginDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_login')); } /** * @return array[] * @throws Exception */ public function invalidLoginDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_login')); } }