public function testMemberGetBonusLevelIdGetsApplied() { $marketingLeader = DbEntityHelper::createMember(null, ['type' => Member::TYPE_MARKETINGLEADER, 'LastName' => 'vl']); $marketingLeader->reload(self::$propelCon); /* $m1 gets bonus level applied after recruiting several members ---------------------------------------------*/ $m1 = DbEntityHelper::createSignupMember($marketingLeader, true, ['lastName' => 'm1']); $m1_1 = DbEntityHelper::createSignupMember($m1, true, ['lastName' => 'm1_1']); $m1_2 = DbEntityHelper::createSignupMember($m1, true, ['lastName' => 'm1_2']); $m1_2_1 = DbEntityHelper::createSignupMember($m1_2, true, ['lastName' => 'm1_2_1']); $m1_2_2 = DbEntityHelper::createSignupMember($m1_2, true, ['lastName' => 'm1_2_2']); $m1_3_1 = DbEntityHelper::createSignupMember($m1_2, true, ['lastName' => 'm1_3_1']); /* $m1 gets bonus level 3 now ---------------------------------------------*/ $m1->activity_setBonusLevel(3, self::$propelCon); /* further recruiting requires the bonus of the member applied ---------------------------------------------*/ $m1_3 = DbEntityHelper::createSignupMember($m1, true, ['lastName' => 'm1_3']); $m1_2_3 = DbEntityHelper::createSignupMember($m1_2_1, true, ['lastName' => 'm1_2_3']); $m1_3_1_1 = DbEntityHelper::createSignupMember($m1_3_1, true, ['lastName' => 'm1_3_1_1']); $bonusId = $m1->getId(); $bonusIdsApplyed = [$m1_1, $m1_2, $m1_2_1, $m1_2_2, $m1_3_1, $m1_3, $m1_2_3, $m1_3_1_1]; foreach ($bonusIdsApplyed as $m) { $m->reload(); $ids = \MemberBonusIds::toArray($m->getBonusIds()); $this->assertTrue(is_array($ids), 'Invalid bonus ids "' . json_encode($ids) . '" for member: ' . $m->getlastName()); $this->assertArrayHasKey($bonusId, $ids, 'Invalid bonus ids for member: ' . $m->getlastName()); } }