/** * Check if methods in states are only public and protected methods availables from the mother * (of non overloaded states) and its owned methods. Check inheritance state from a state in parent classe. */ public function testListMethodsByStatesGrandDaughter() { $grandDaughterInstance = new GrandDaughter(); $this->assertEquals(['StateDefault' => [], 'StateOne' => ['method3', 'method4'], 'StateThree' => ['method7', 'method6', 'methodRecallMotherPrivate', 'methodRecallMotherProtected'], 'StateTwo' => ['methodPublic', 'methodProtected', 'methodRecallPrivate']], $grandDaughterInstance->listMethodsByStates()); }