/** * @covers sBasket::sCheckForESD */ public function testsCheckForESD() { // No session, expect false $this->assertFalse($this->module->sCheckForESD()); $this->module->sSYSTEM->sSESSION_ID = uniqid(); $this->session->offsetSet('sessionId', $this->module->sSYSTEM->sSESSION_ID); // Get random non-esd article and add it to the basket $randomNoESDArticle = $this->db->fetchRow('SELECT detail.ordernumber FROM s_articles_details detail LEFT JOIN s_articles article ON article.id = detail.articleID LEFT JOIN s_articles_esd esd ON esd.articledetailsID = detail.id WHERE detail.active = 1 AND esd.id IS NULL ORDER BY RAND() LIMIT 1'); $this->assertGreaterThan(0, $this->module->sAddArticle($randomNoESDArticle['ordernumber'], 1)); $this->assertFalse($this->module->sCheckForESD()); // Get random esd article $randomESDArticle = $this->db->fetchRow('SELECT detail.* FROM s_articles_details detail LEFT JOIN s_articles article ON article.id = detail.articleID LEFT JOIN s_articles_esd esd ON esd.articledetailsID = detail.id WHERE esd.id IS NOT NULL ORDER BY RAND() LIMIT 1'); $this->db->update('s_articles_details', array('active' => 1), array('id = ?' => $randomESDArticle['id'])); $this->db->update('s_articles', array('active' => 1), array('id = ?' => $randomESDArticle['articleID'])); $this->module->sAddArticle($randomESDArticle['ordernumber'], 1); $this->assertTrue($this->module->sCheckForESD()); // Housekeeping $this->db->delete('s_order_basket', array('sessionID = ?' => $this->session->get('sessionId'))); $this->db->update('s_articles_details', array('active' => 0), array('id = ?' => $randomESDArticle['id'])); $this->db->update('s_articles', array('active' => 0), array('id = ?' => $randomESDArticle['articleID'])); }
/** * Check if any electronically distribution product is in basket * * @return boolean */ public function getEsdNote() { $payment = empty($this->View()->sUserData['additional']['payment']) ? $this->session['sOrderVariables']['sUserData']['additional']['payment'] : $this->View()->sUserData['additional']['payment']; return $this->basket->sCheckForESD() && !$payment['esdactive']; }