wizardFactory = new Wizard($this->range); $this->style = new Style(); } public function testBlankWizard(): void { $ruleType = Wizard::BLANKS; $wizard = $this->wizardFactory->newRule($ruleType); self::assertInstanceOf(Wizard\Blanks::class, $wizard); $wizard->setStyle($this->style); $conditional = $wizard->getConditional(); self::assertSame(Conditional::CONDITION_CONTAINSBLANKS, $conditional->getConditionType()); $conditions = $conditional->getConditions(); self::assertSame(['LEN(TRIM(C3))=0'], $conditions); $newWizard = Wizard::fromConditional($conditional, $this->range); $newWizard->getConditional(); self::assertEquals($newWizard, $wizard, 'fromConditional() Failure'); } public function testNonBlankWizard(): void { $ruleType = Wizard::NOT_BLANKS; $wizard = $this->wizardFactory->newRule($ruleType); self::assertInstanceOf(Wizard\Blanks::class, $wizard); $wizard->setStyle($this->style); $conditional = $wizard->getConditional(); self::assertSame(Conditional::CONDITION_NOTCONTAINSBLANKS, $conditional->getConditionType()); $conditions = $conditional->getConditions(); self::assertSame(['LEN(TRIM(C3))>0'], $conditions); $newWizard = Wizard::fromConditional($conditional, $this->range); $newWizard->getConditional(); self::assertEquals($newWizard, $wizard, 'fromConditional() Failure'); } public function testBlankWizardWithNotBlank(): void { $ruleType = Wizard::BLANKS; /** @var Wizard\Blanks $wizard */ $wizard = $this->wizardFactory->newRule($ruleType); $wizard->setStyle($this->style); $wizard->notBlank(); $conditional = $wizard->getConditional(); self::assertSame(Conditional::CONDITION_NOTCONTAINSBLANKS, $conditional->getConditionType()); $conditions = $conditional->getConditions(); self::assertSame(['LEN(TRIM(C3))>0'], $conditions); $newWizard = Wizard::fromConditional($conditional, $this->range); $newWizard->getConditional(); self::assertEquals($newWizard, $wizard, 'fromConditional() Failure'); } public function testNonBlankWizardWithIsBlank(): void { $ruleType = Wizard::NOT_BLANKS; /** @var Wizard\Blanks $wizard */ $wizard = $this->wizardFactory->newRule($ruleType); $wizard->setStyle($this->style); $wizard->isBlank(); $conditional = $wizard->getConditional(); self::assertSame(Conditional::CONDITION_CONTAINSBLANKS, $conditional->getConditionType()); $conditions = $conditional->getConditions(); self::assertSame(['LEN(TRIM(C3))=0'], $conditions); $newWizard = Wizard::fromConditional($conditional, $this->range); $newWizard->getConditional(); self::assertEquals($newWizard, $wizard, 'fromConditional() Failure'); } public function testInvalidFromConditional(): void { $ruleType = 'Unknown'; $this->expectException(Exception::class); $this->expectExceptionMessage('Conditional is not a Blanks CF Rule conditional'); $conditional = new Conditional(); $conditional->setConditionType($ruleType); Wizard\Blanks::fromConditional($conditional); } protected string $unknown = 'UNKNOWN'; public function testInvalidOperator(): void { $this->expectException(Exception::class); $this->expectExceptionMessage('Invalid Operation for Blanks CF Rule Wizard'); $ruleType = Wizard::BLANKS; /** @var Wizard\Blanks $wizard */ $wizard = $this->wizardFactory->newRule($ruleType); $ruleType = $this->unknown; $wizard->$ruleType(); } public function testStopIfTrue(): void { $ruleType = Wizard::BLANKS; /** @var Wizard\Blanks $wizard */ $wizard = $this->wizardFactory->newRule($ruleType); $wizard->setStopIfTrue(false); self::assertFalse($wizard->getStopIfTrue()); $wizard->setStopIfTrue(true); self::assertTrue($wizard->getStopIfTrue()); } }