object = $this->getMockBuilder(PaymentPeriod::class)->getMockForAbstractClass(); $this->assertTrue(class_exists(PaymentPeriod::class)); $this->assertInstanceOf(PaymentPeriod::class, $this->object); } /** * Test property "month" * @dataProvider validMonthDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testMonth(mixed $value): void { $instance = $this->getTestInstance(); $instance->setMonth($value); self::assertNotNull($instance->getMonth()); self::assertNotNull($instance->month); self::assertEquals($value, $instance->getMonth()); self::assertEquals($value, $instance->month); self::assertLessThanOrEqual(12, is_string($instance->getMonth()) ? mb_strlen($instance->getMonth()) : $instance->getMonth()); self::assertLessThanOrEqual(12, is_string($instance->month) ? mb_strlen($instance->month) : $instance->month); self::assertGreaterThanOrEqual(1, is_string($instance->getMonth()) ? mb_strlen($instance->getMonth()) : $instance->getMonth()); self::assertGreaterThanOrEqual(1, is_string($instance->month) ? mb_strlen($instance->month) : $instance->month); self::assertIsNumeric($instance->getMonth()); self::assertIsNumeric($instance->month); } /** * Test invalid property "month" * @dataProvider invalidMonthDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidMonth(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setMonth($value); } /** * @return array[] * @throws Exception */ public function validMonthDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_month')); } /** * @return array[] * @throws Exception */ public function invalidMonthDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_month')); } /** * Test property "year" * @dataProvider validYearDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testYear(mixed $value): void { $instance = $this->getTestInstance(); $instance->setYear($value); self::assertNotNull($instance->getYear()); self::assertNotNull($instance->year); self::assertEquals($value, $instance->getYear()); self::assertEquals($value, $instance->year); self::assertIsNumeric($instance->getYear()); self::assertIsNumeric($instance->year); } /** * Test invalid property "year" * @dataProvider invalidYearDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidYear(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setYear($value); } /** * @return array[] * @throws Exception */ public function validYearDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_year')); } /** * @return array[] * @throws Exception */ public function invalidYearDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_year')); } }