/** * @covers sBasket::sCheckMinimumCharge */ public function testsCheckMinimumCharge() { $oldMinimumOrder = $this->module->sSYSTEM->sUSERGROUPDATA["minimumorder"]; $oldMinimumOrderSurcharge = $this->module->sSYSTEM->sUSERGROUPDATA["minimumordersurcharge"]; // Test with minimum order surcharge, always returns false $this->module->sSYSTEM->sUSERGROUPDATA["minimumordersurcharge"] = 10; $this->assertFalse($this->module->sCheckMinimumCharge()); $this->module->sSYSTEM->sUSERGROUPDATA["minimumordersurcharge"] = 0; $this->module->sSYSTEM->sUSERGROUPDATA["minimumorder"] = 10; // Test with empty cart, expect 10 $this->assertEquals(10, $this->module->sCheckMinimumCharge()); $this->module->sSYSTEM->sSESSION_ID = uniqid(); $this->session->offsetSet('sessionId', $this->module->sSYSTEM->sSESSION_ID); // Add one article to the basket with enough value to use discount $randomArticle = $this->db->fetchRow('SELECT * FROM s_articles_details detail INNER JOIN s_articles article ON article.id = detail.articleID WHERE detail.active = 1 ORDER BY RAND() LIMIT 1'); $this->db->insert('s_order_basket', array('price' => 2, 'quantity' => 1, 'sessionID' => $this->session->get('sessionId'), 'ordernumber' => $randomArticle['ordernumber'], 'articleID' => $randomArticle['articleID'])); // Test with non-empty cart, expect 10 $this->assertEquals(10, $this->module->sCheckMinimumCharge()); // Pass the minimum value, expect false $this->db->insert('s_order_basket', array('price' => 20, 'quantity' => 1, 'sessionID' => $this->session->get('sessionId'), 'ordernumber' => $randomArticle['ordernumber'], 'articleID' => $randomArticle['articleID'])); $this->assertFalse($this->module->sCheckMinimumCharge()); // Housekeeping $this->module->sSYSTEM->sUSERGROUPDATA["minimumorder"] = $oldMinimumOrder; $this->module->sSYSTEM->sUSERGROUPDATA["minimumordersurcharge"] = $oldMinimumOrderSurcharge; $this->db->delete('s_order_basket', array('sessionID = ?' => $this->session->get('sessionId'))); }
/** * Get configured minimum charge to check in order processing * * @return bool */ public function getMinimumCharge() { return $this->basket->sCheckMinimumCharge(); }