Ejemplo n.º 1
0
 /**
  * @covers sAdmin::sManageRisks
  * @covers sAdmin::sRiskORDERVALUELESS
  * @covers sAdmin::sRiskORDERVALUEMORE
  * @covers sAdmin::sRiskCUSTOMERGROUPIS
  * @covers sAdmin::sRiskCUSTOMERGROUPISNOT
  * @covers sAdmin::sRiskZIPCODE
  * @covers sAdmin::sRiskZONEIS
  * @covers sAdmin::sRiskZONEISNOT
  * @covers sAdmin::sRiskLANDIS
  * @covers sAdmin::sRiskLANDISNOT
  * @covers sAdmin::sRiskNEWCUSTOMER
  * @covers sAdmin::sRiskORDERPOSITIONSMORE
  * @covers sAdmin::sRiskATTRIS
  * @covers sAdmin::sRiskATTRISNOT
  * @covers sAdmin::sRiskINKASSO
  * @covers sAdmin::sRiskLASTORDERLESS
  * @covers sAdmin::sRiskARTICLESFROM
  * @covers sAdmin::sRiskLASTORDERSLESS
  * @covers sAdmin::sRiskPREGSTREET
  * @covers sAdmin::sRiskDIFFER
  * @covers sAdmin::sRiskCUSTOMERNR
  * @covers sAdmin::sRiskLASTNAME
  * @covers sAdmin::sRiskSUBSHOP
  * @covers sAdmin::sRiskSUBSHOPNOT
  * @covers sAdmin::sRiskCURRENCIESISOIS
  * @covers sAdmin::sRiskCURRENCIESISOISNOT
  */
 public function testsManageRisks()
 {
     $customer = $this->createDummyCustomer();
     $this->session->offsetSet('sUserId', $customer->getId());
     $basket = array('content' => 1, 'AmountNumeric' => 10);
     $user = $this->module->sGetUserData();
     // Inject demo data
     $orderData = array('ordernumber' => uniqid(), 'userID' => $customer->getId(), 'invoice_amount' => '37.99', 'invoice_amount_net' => '31.92', 'invoice_shipping' => '0', 'invoice_shipping_net' => '0', 'ordertime' => new DateTime(), 'status' => '0', 'cleared' => '17', 'paymentID' => '4', 'transactionID' => '', 'comment' => '', 'customercomment' => '', 'internalcomment' => '', 'net' => '0', 'taxfree' => '0', 'partnerID' => '', 'temporaryID' => '', 'referer' => '', 'cleareddate' => NULL, 'cleared' => 16, 'trackingcode' => '', 'language' => '2', 'dispatchID' => '9', 'currency' => 'EUR', 'currencyFactor' => '1', 'subshopID' => '1', 'remote_addr' => '127.0.0.1');
     Shopware()->Db()->insert('s_order', $orderData);
     $orderId = Shopware()->Db()->lastInsertId();
     // No rules, returns false
     $this->assertFalse($this->module->sManageRisks(2, $basket, $user));
     // Test all rules
     // sRiskORDERVALUELESS
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ORDERVALUELESS', 'value1' => 20));
     $firstTestRuleId = Shopware()->Db()->lastInsertId();
     $this->assertTrue($this->module->sManageRisks(2, $basket, $user));
     // sRiskORDERVALUEMORE
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ORDERVALUEMORE', 'value1' => 20));
     // Test 'OR' logic between different rules (only one needs to be true)
     $this->assertTrue($this->module->sManageRisks(2, $basket, $user));
     // Deleting the first rule, only a false one is left
     Shopware()->Db()->delete('s_core_rulesets', 'id = ' . $firstTestRuleId);
     $this->assertFalse($this->module->sManageRisks(2, $basket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskCUSTOMERGROUPIS
     // sRiskCUSTOMERGROUPISNOT
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CUSTOMERGROUPIS', 'value1' => 'EK', 'rule2' => 'CUSTOMERGROUPISNOT', 'value2' => 'EK'));
     // Test 'AND' logic between the two parts of the same rule (both need to be true)
     $this->assertFalse($this->module->sManageRisks(2, $basket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskZIPCODE
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ZIPCODE', 'value1' => '12345'));
     $this->assertTrue($this->module->sManageRisks(2, $basket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskZONEIS
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ZONEIS', 'value1' => '12345'));
     $this->assertFalse($this->module->sManageRisks(2, $basket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskZONEISNOT
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ZONEISNOT', 'value1' => '12345'));
     $this->assertTrue($this->module->sManageRisks(2, $basket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskLANDIS
     // sRiskLANDISNOT
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LANDIS', 'value1' => 'DE', 'rule2' => 'LANDISNOT', 'value2' => 'UK'));
     $this->assertTrue($this->module->sManageRisks(2, $basket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskNEWCUSTOMER
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'NEWCUSTOMER'));
     $this->assertTrue($this->module->sManageRisks(2, $basket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskORDERPOSITIONSMORE
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ORDERPOSITIONSMORE', 'value1' => '2'));
     $this->assertFalse($this->module->sManageRisks(2, $basket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     $this->module->sSYSTEM->sSESSION_ID = uniqid();
     $this->session->offsetSet('sessionId', $this->module->sSYSTEM->sSESSION_ID);
     $this->basketModule->sAddArticle('SW10118.8');
     // sRiskATTRIS
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ATTRIS', 'value1' => '1|0'));
     $fullBasket = $this->basketModule->sGetBasket();
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     $this->basketModule->sAddArticle('SW10118.8');
     // sRiskATTRISNOT
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ATTRISNOT', 'value1' => '17|null'));
     $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskINKASSO
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'INKASSO'));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskLASTORDERLESS
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LASTORDERLESS', 'value1' => '1'));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskARTICLESFROM
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ARTICLESFROM', 'value1' => '1'));
     $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskARTICLESFROM
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ARTICLESFROM', 'value1' => '9'));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskLASTORDERSLESS
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LASTORDERSLESS', 'value1' => '9'));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskLASTORDERSLESS
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LASTORDERSLESS', 'value1' => '0'));
     $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskPREGSTREET
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'PREGSTREET', 'value1' => 'Merkel'));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskPREGSTREET
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'PREGSTREET', 'value1' => 'Google'));
     $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskDIFFER
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'DIFFER'));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskCUSTOMERNR
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CUSTOMERNR', 'value1' => $customer->getBilling()->getNumber()));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskCUSTOMERNR
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CUSTOMERNR', 'value1' => 'ThisIsNeverGoingToBeACustomerNumber'));
     $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskLASTNAME
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LASTNAME', 'value1' => 'Mustermann'));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskLASTNAME
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LASTNAME', 'value1' => 'NotMustermann'));
     $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskSUBSHOP
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'SUBSHOP', 'value1' => '1'));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskSUBSHOP
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'SUBSHOP', 'value1' => '2'));
     $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskSUBSHOPNOT
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'SUBSHOPNOT', 'value1' => '2'));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskSUBSHOPNOT
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'SUBSHOPNOT', 'value1' => '1'));
     $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskCURRENCIESISOIS
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CURRENCIESISOIS', 'value1' => 'eur'));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskCURRENCIESISOIS
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CURRENCIESISOIS', 'value1' => 'yen'));
     $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskCURRENCIESISOISNOT
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CURRENCIESISOISNOT', 'value1' => 'eur'));
     $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     // sRiskCURRENCIESISOISNOT
     Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CURRENCIESISOISNOT', 'value1' => 'yen'));
     $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user));
     Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId);
     Shopware()->Db()->delete('s_order', 'id = ' . $orderId);
     $this->deleteDummyCustomer($customer);
 }