* * * * @test */ public function oneLevelCountsUseIsCorrect() { $first = new \DOMElement('first'); $firstSubject = new Subject($first, $this->nestingLimit); self::assertSame(0, $firstSubject->countUse(false)); self::assertSame(0, $firstSubject->countUse(true)); } /** * * * * * * @test */ public function twoLevelsCountUseIsCorrect() { $first = new \DOMElement('first'); $second = new \DOMElement('second'); $firstSubject = new Subject($first, $this->nestingLimit); $secondSubject = new Subject($second, $this->nestingLimit); $firstSubject->addUse($secondSubject); $firstSubject->addUse($secondSubject); self::assertSame(2, $firstSubject->countUse(false)); self::assertSame(2, $firstSubject->countUse(true)); } /** * * * * * * * * * * * * * * @test */ public function threeLevelsCountUseIsCorrect() { $first = new \DOMElement('first'); $second = new \DOMElement('second'); $third = new \DOMElement('third'); $firstSubject = new Subject($first, $this->nestingLimit); $secondSubject = new Subject($second, $this->nestingLimit); $thirdSubject = new Subject($third, $this->nestingLimit); $firstSubject->addUse($secondSubject); $firstSubject->addUse($secondSubject); $secondSubject->addUse($thirdSubject); $secondSubject->addUse($thirdSubject); $secondSubject->addUse($thirdSubject); self::assertSame(6, $firstSubject->countUse(false)); self::assertSame(8, $firstSubject->countUse(true)); } /** * * * * @test */ public function oneLevelCountsUsedInIsCorrect() { $first = new \DOMElement('first'); $firstSubject = new Subject($first, $this->nestingLimit); self::assertSame(0, $firstSubject->countUsedIn()); } /** * * * * * * @test */ public function twoLevelsCountUsedInIsCorrect() { $first = new \DOMElement('first'); $second = new \DOMElement('second'); $firstSubject = new Subject($first, $this->nestingLimit); $secondSubject = new Subject($second, $this->nestingLimit); $secondSubject->addUsedIn($firstSubject); $secondSubject->addUsedIn($firstSubject); self::assertSame(2, $secondSubject->countUsedIn()); } /** * * * * * * * * * * * * * * @test */ public function threeLevelsCountUsedInIsCorrect() { $first = new \DOMElement('first'); $second = new \DOMElement('second'); $third = new \DOMElement('third'); $firstSubject = new Subject($first, $this->nestingLimit); $secondSubject = new Subject($second, $this->nestingLimit); $thirdSubject = new Subject($third, $this->nestingLimit); $thirdSubject->addUsedIn($secondSubject); $thirdSubject->addUsedIn($secondSubject); $thirdSubject->addUsedIn($secondSubject); $secondSubject->addUsedIn($firstSubject); $secondSubject->addUsedIn($firstSubject); self::assertSame(6, $thirdSubject->countUsedIn()); } }