/** * @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); }