object = $this->getMockBuilder(MarkQuantity::class)->getMockForAbstractClass(); $this->assertTrue(class_exists(MarkQuantity::class)); $this->assertInstanceOf(MarkQuantity::class, $this->object); } /** * Test property "numerator" * @dataProvider validNumeratorDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testNumerator(mixed $value): void { $instance = $this->getTestInstance(); $instance->setNumerator($value); self::assertNotNull($instance->getNumerator()); self::assertNotNull($instance->numerator); self::assertEquals($value, is_array($value) ? $instance->getNumerator()->toArray() : $instance->getNumerator()); self::assertEquals($value, is_array($value) ? $instance->numerator->toArray() : $instance->numerator); self::assertGreaterThanOrEqual(1, is_string($instance->getNumerator()) ? mb_strlen($instance->getNumerator()) : $instance->getNumerator()); self::assertGreaterThanOrEqual(1, is_string($instance->numerator) ? mb_strlen($instance->numerator) : $instance->numerator); self::assertIsNumeric($instance->getNumerator()); self::assertIsNumeric($instance->numerator); } /** * Test invalid property "numerator" * @dataProvider invalidNumeratorDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidNumerator(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setNumerator($value); } /** * @return array[] * @throws Exception */ public function validNumeratorDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_numerator')); } /** * @return array[] * @throws Exception */ public function invalidNumeratorDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_numerator')); } /** * Test property "denominator" * @dataProvider validDenominatorDataProvider * @param mixed $value * * @return void * @throws Exception */ public function testDenominator(mixed $value): void { $instance = $this->getTestInstance(); $instance->setDenominator($value); self::assertNotNull($instance->getDenominator()); self::assertNotNull($instance->denominator); self::assertEquals($value, is_array($value) ? $instance->getDenominator()->toArray() : $instance->getDenominator()); self::assertEquals($value, is_array($value) ? $instance->denominator->toArray() : $instance->denominator); self::assertGreaterThanOrEqual(1, is_string($instance->getDenominator()) ? mb_strlen($instance->getDenominator()) : $instance->getDenominator()); self::assertGreaterThanOrEqual(1, is_string($instance->denominator) ? mb_strlen($instance->denominator) : $instance->denominator); self::assertIsNumeric($instance->getDenominator()); self::assertIsNumeric($instance->denominator); } /** * Test invalid property "denominator" * @dataProvider invalidDenominatorDataProvider * @param mixed $value * @param string $exceptionClass * * @return void */ public function testInvalidDenominator(mixed $value, string $exceptionClass): void { $instance = $this->getTestInstance(); $this->expectException($exceptionClass); $instance->setDenominator($value); } /** * @return array[] * @throws Exception */ public function validDenominatorDataProvider(): array { $instance = $this->getTestInstance(); return $this->getValidDataProviderByType($instance->getValidator()->getRulesByPropName('_denominator')); } /** * @return array[] * @throws Exception */ public function invalidDenominatorDataProvider(): array { $instance = $this->getTestInstance(); return $this->getInvalidDataProviderByType($instance->getValidator()->getRulesByPropName('_denominator')); } }