public function testReceivingChildrenOfDeletedFirstMemberWithDeepTree() { // NOTE: This tests what happen if my first advertising gets // deleted due to not paying fee. /* Setup ---------------------------------------------*/ DbEntityHelper::setCon(self::$propelCon); $promoter1 = DbEntityHelper::createMember(); $MYSELF = DbEntityHelper::createSignupMember($promoter1); $MYSELF_total = new TransactionTotalsAssertions($MYSELF, $this); $this->assertEquals($MYSELF->getFundsLevel(), Member::FUNDS_LEVEL1); /* Advertise 2 users ---------------------------------------------*/ $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL1); $franz = DbEntityHelper::createSignupMember($MYSELF); $WILL_NOT_PAY = DbEntityHelper::createSignupMember($MYSELF, false); /* WILL_NOT_PAY advertises 3 and these does either advertise a view ---------------------------------------------*/ $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL1); $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL2, 4); DbEntityHelper::createSignupMember($WILL_NOT_PAY); DbEntityHelper::createSignupMember($WILL_NOT_PAY); DbEntityHelper::createSignupMember($WILL_NOT_PAY); $deep1 = DbEntityHelper::createSignupMember($WILL_NOT_PAY); $deep1_lazy = DbEntityHelper::createSignupMember($WILL_NOT_PAY, false); $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 2); $deep2 = DbEntityHelper::createSignupMember($deep1); DbEntityHelper::createSignupMember($deep1); DbEntityHelper::createSignupMember($deep1); DbEntityHelper::createSignupMember($deep1); $deep2_lazy = DbEntityHelper::createSignupMember($deep1, false); $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 2); $deep3 = DbEntityHelper::createSignupMember($deep2, false); DbEntityHelper::createSignupMember($deep2); $WILL_NOT_PAY->deleteAndUpdateTree(self::$propelCon); DbEntityHelper::fireReceivedMemberFee($deep1_lazy, time()); DbEntityHelper::fireReceivedMemberFee($deep2_lazy, time()); DbEntityHelper::fireReceivedMemberFee($deep3, time()); // ---- assert - ME $MYSELF_total->assertTotals(); }
public function testInvitationCanFreeFromFee() { // NOTE: This tests what happen if one of my third+ advertisings gets // deleted due to not paiing fee. /* Setup ---------------------------------------------*/ DbEntityHelper::setCon(self::$propelCon); $marketingLeader = DbEntityHelper::createMember(null, ['Type' => Member::TYPE_MARKETINGLEADER]); $marketingLeader->reload(self::$propelCon); /* Create invitation ---------------------------------------------*/ $invitation = Invitation::create($marketingLeader, ['type' => Member::TYPE_ORGLEADER, 'free_signup' => 1], self::$propelCon); /* Create member with created invitation code ---------------------------------------------*/ list($valid, $data, $referralMember, $invitation) = \Member::validateSignupForm(array_merge(self::$singupFormData, ['referral_member_num' => $marketingLeader->getNum(), 'invitation_code' => $invitation->getHash()])); $member = \Member::createFromSignup($data, $marketingLeader, $invitation, self::$propelCon); $member->reload(self::$propelCon); /* Assert proper member type ---------------------------------------------*/ $this->assertEquals(Member::TYPE_ORGLEADER, $member->getType()); $this->assertNotNull($member->getPaidDate()); }
public static function setUpBeforeClass() { $con = Propel::getConnection(); DbEntityHelper::setCon($con); }
<?php include dirname(__FILE__) . '/bootstrap.php'; $con = Propel::getConnection(); DbEntityHelper::setCon($con); DbEntityHelper::truncateDatabase(); list(list($IT, $VL, $OL, $PM, $VS2, $VS1), list($trfIT, $trfVL, $trfOL, $trfPM, $trfVS2, $trfVS1), ) = DbEntityHelper::setUpBonusMembers(false); $pm1 = DbEntityHelper::createSignupMember($PM); $pm2 = DbEntityHelper::createSignupMember($PM); $pm3 = DbEntityHelper::createSignupMember($PM); $pm4 = DbEntityHelper::createSignupMember($PM); $pm5 = DbEntityHelper::createSignupMember($PM); $pm1_1 = DbEntityHelper::createSignupMember($pm1); $pm1_2 = DbEntityHelper::createSignupMember($pm1); $pm1_3 = DbEntityHelper::createSignupMember($pm1); $pm1_4 = DbEntityHelper::createSignupMember($pm1); $pm1_5 = DbEntityHelper::createSignupMember($pm1); $pm1_6 = DbEntityHelper::createSignupMember($pm1); $pm2_1 = DbEntityHelper::createSignupMember($pm2); $pm2_1_1 = DbEntityHelper::createSignupMember($pm2_1); $pm2_1_1_1 = DbEntityHelper::createSignupMember($pm2_1_1); $pm2_1_1_1_1 = DbEntityHelper::createSignupMember($pm2_1_1_1); $pm2_1_1_1_1_1 = DbEntityHelper::createSignupMember($pm2_1_1_1_1); DbEntityHelper::createSignupMember($pm2_1_1_1_1_1); DbEntityHelper::createSignupMember($pm2_1_1_1_1_1); DbEntityHelper::createSignupMember($pm2_1_1_1_1_1); DbEntityHelper::createSignupMember($pm4); DbEntityHelper::createSignupMember($pm4);
public function testVariant12() { /** * OL - Neues Mitglied * 22$ * ------------------------------------------*/ /* Setup ---------------------------------------------*/ DbEntityHelper::setCon(self::$propelCon); list(list($IT, $VL, $OL, $PM, $VS2, $VS1), list($trfIT, $trfVL, $trfOL, $trfPM, $trfVS2, $trfVS1), ) = DbEntityHelper::setUpBonusMembers(true, ['VL' => false]); $new = DbEntityHelper::createSignupMember($OL); $trfIT += Transaction::getAmountForReason(Transaction::REASON_IT_BONUS); // $trfVL += Transaction::getAmountForReason(Transaction::REASON_VL_BONUS); $trfOL += Transaction::getAmountForReason(Transaction::REASON_OL_BONUS) + Transaction::getAmountForReason(Transaction::REASON_PM_BONUS) + Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL2); // $trfPM += Transaction::getAmountForReason(Transaction::REASON_PM_BONUS); // $trfVS2 += Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_INDIRECT); // $trfVS1 += Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL1); $this->assertTransferTotal($trfIT, $IT); // $this->assertTransferTotal($trfVL, $VL); $this->assertTransferTotal($trfOL, $OL); $this->assertTransferTotal($trfPM, $PM); $this->assertTransferTotal($trfVS2, $VS2); $this->assertTransferTotal($trfVS1, $VS1); }
public function testSubPromoterBonusSpreading() { // Deprecated $this->assertTrue(true); return; /** * PM * 1$ * * VL - S_PM - Neues Mitglied * 1$ - 1$ - 5$ * ------------------------------------------*/ /* Setup ---------------------------------------------*/ DbEntityHelper::setCon(self::$propelCon); $marketingLeader = DbEntityHelper::createMember(null, ['Type' => Member::TYPE_MARKETINGLEADER, 'FundsLevel' => Member::FUNDS_LEVEL2]); $marketingLeader->reload(self::$propelCon); $mLeaderTransfer = new TransactionTotalsAssertions($marketingLeader, $this); $promoter = DbEntityHelper::createSignupMember($marketingLeader); $mLeaderTransfer->add(Transaction::REASON_ADVERTISED_LVL2); $mLeaderTransfer->add(Transaction::REASON_VL_BONUS); $mLeaderTransfer->add(Transaction::REASON_OL_BONUS); $mLeaderTransfer->add(Transaction::REASON_PM_BONUS); /* Create invitation ---------------------------------------------*/ $invitation = Invitation::create($marketingLeader, ['type' => Member::TYPE_SUB_PROMOTER, 'free_signup' => 1, 'promoter_num' => $promoter->getNum(), 'promoter_id' => $promoter->getId()], self::$propelCon); /* Create member with created invitation code ---------------------------------------------*/ list($valid, $data, $referralMember, $invitation) = \Member::validateSignupForm(array_merge(self::$singupFormData, ['referral_member_num' => $marketingLeader->getNum(), 'invitation_code' => $invitation->getHash()])); $subPromoter = \Member::createFromSignup($data, $marketingLeader, $invitation, self::$propelCon); $subPromoter->reload(self::$propelCon); /* Sub promoter recruits anyone ---------------------------------------------*/ DbEntityHelper::createSignupMember($subPromoter); $subPromoterTransfer = new TransactionTotalsAssertions($subPromoter, $this); $promoterTransfer = new TransactionTotalsAssertions($promoter, $this); $mLeaderTransfer->add(Transaction::REASON_VL_BONUS); $mLeaderTransfer->add(Transaction::REASON_ADVERTISED_INDIRECT); $promoterTransfer->add(Transaction::REASON_SUB_PM_REF_BONUS); $subPromoterTransfer->add(Transaction::REASON_SUB_PM_BONUS); $subPromoterTransfer->add(Transaction::REASON_ADVERTISED_LVL1); $mLeaderTransfer->assertTotals(); $promoterTransfer->assertTotals(); $subPromoterTransfer->assertTotals(); }