public function __construct(Member $member, PHPUnit_Framework_TestCase $testCase) { $this->member = $member; $this->testCase = $testCase; $this->transfer = DbEntityHelper::getCurrentTransferBundle($member); if ($this->transfer->isNew()) { $this->transfer->save(DbEntityHelper::$con); } }
public function testSnowballModel() { /* Setup ---------------------------------------------*/ $systemAccount = SystemStats::getSystemAccount(); $systemTransfer = new TransactionTotalsAssertions($systemAccount, $this); $promoter1 = DbEntityHelper::createMember(); $MYSELF = DbEntityHelper::createSignupMember($promoter1); $this->assertEquals($MYSELF->getFundsLevel(), Member::FUNDS_LEVEL1); /* Advertise 2 users ---------------------------------------------*/ $far_l1_1 = DbEntityHelper::createSignupMember($MYSELF); $bea_l1_2 = DbEntityHelper::createSignupMember($MYSELF); $this->assertEquals($MYSELF->getFundsLevel(), Member::FUNDS_LEVEL2); $MYSELF_total = new TransactionTotalsAssertions($MYSELF, $this); $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL1, 2); $MYSELF_total->assertTotals(); /* Advertise 1 more user - chris ---------------------------------------------*/ $CHRIS_l1_3 = DbEntityHelper::createSignupMember($MYSELF); // ---- assert - ME $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL2); $MYSELF_total->assertTotals(); /* chris advertise 1 user - dean ---------------------------------------------*/ $DEAN_l2_1 = DbEntityHelper::createSignupMember($CHRIS_l1_3); // ---- assert - CHRIS $CHRIS_transfer = DbEntityHelper::getCurrentTransferBundle($CHRIS_l1_3); $CHRIS_total = new TransactionTotalsAssertions($CHRIS_l1_3, $this); $CHRIS_total->add(Transaction::REASON_ADVERTISED_LVL1); $CHRIS_total->assertTotals(); // ---- assert - ME $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT); $MYSELF_total->assertTotals(); /* chris advertise 1 user - emi ---------------------------------------------*/ $EMI_l2_2 = DbEntityHelper::createSignupMember($CHRIS_l1_3); // ---- assert - CHRIS $CHRIS_total->add(Transaction::REASON_ADVERTISED_LVL1); $CHRIS_total->assertTotals(); $this->assertEquals($CHRIS_l1_3->getFundsLevel(), Member::FUNDS_LEVEL2); // ---- assert - ME $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT); $MYSELF_total->assertTotals(); /* dean advertise 1 user - franz ---------------------------------------------*/ $FRANZ_l3_1 = DbEntityHelper::createSignupMember($DEAN_l2_1); // ---- assert - CHRIS - remain at 10 euro $CHRIS_total->assertTotals(); // ---- assert - ME $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT); $MYSELF_total->assertTotals(); DbEntityHelper::createSignupMember($DEAN_l2_1); DbEntityHelper::createSignupMember($EMI_l2_2); DbEntityHelper::createSignupMember($EMI_l2_2); $CHRIS_total->add(Transaction::REASON_ADVERTISED_LVL2); $CHRIS_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 2); $ALF_l2_3 = DbEntityHelper::createSignupMember($CHRIS_l1_3); $GUST_l3_1 = DbEntityHelper::createSignupMember($ALF_l2_3); DbEntityHelper::createSignupMember($ALF_l2_3); // ---- assert - CHRIS - at 60 euro $CHRIS_total->assertTotals(); // ---- assert - ME $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 3); $MYSELF_total->assertTotals(); $CHRIS_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 2); DbEntityHelper::createSignupMember($GUST_l3_1); DbEntityHelper::createSignupMember($GUST_l3_1); // ---- assert - CHRIS - at 90 euro $CHRIS_total->assertTotals(); /* if anyone advertised more than 2 user i dont get anything from the third on ---------------------------------------------*/ DbEntityHelper::createSignupMember($CHRIS_l1_3); DbEntityHelper::createSignupMember($CHRIS_l1_3); DbEntityHelper::createSignupMember($CHRIS_l1_3); DbEntityHelper::createSignupMember($GUST_l3_1); DbEntityHelper::createSignupMember($GUST_l3_1); DbEntityHelper::createSignupMember($GUST_l3_1); DbEntityHelper::createSignupMember($ALF_l2_3); DbEntityHelper::createSignupMember($ALF_l2_3); DbEntityHelper::createSignupMember($ALF_l2_3); DbEntityHelper::createSignupMember($EMI_l2_2); DbEntityHelper::createSignupMember($EMI_l2_2); /* as well, i dont get anything but 5euro from my first advertisings ---------------------------------------------*/ DbEntityHelper::createSignupMember($bea_l1_2); DbEntityHelper::createSignupMember($bea_l1_2); DbEntityHelper::createSignupMember($bea_l1_2); // ---- assert - MYSELF $MYSELF_total->assertTotals(); }
private function assertTransferTotal($total, Member $member) { $transfer = DbEntityHelper::getCurrentTransferBundle($member); $this->assertEquals($total, $transfer->getAmount(), 'Incorrect transfer total'); $this->assertEquals($total, $member->getOutstandingTotal(), 'Incorrect outstanding total'); }