getConnection();
$conn->getConnection()->query('set foreign_key_checks=0');
parent::setUp();
$conn->getConnection()->query('set foreign_key_checks=1');
$this->mailArchive = $this->get(MailArchive::class);
$this->setTelfaSettings();
}
public function testEmailInChangeStatus()
{
$cfg = \KupShop\KupShopBundle\Config::get();
$this->mailArchive->clearArchive();
$order = new Order();
$order->createFromDB(2);
$order->changeStatus(2);
$this->assertContains("stav Vaší objednávky číslo {$order->order_no} byl změněn na {$cfg['Order']['Status']['global'][2]}", $this->mailArchive->getArchive()[0]['body']);
$this->assertContains("Demo Kupshop.cz - změna stavu objednávky {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_status_change', $this->mailArchive->getArchive()[0]['body']);
}
public function testEmailInChangeStatusComment()
{
$cfg = \KupShop\KupShopBundle\Config::get();
$this->mailArchive->clearArchive();
$order = new Order();
$order->createFromDB(2);
$order->changeStatus(2, 'Komentář');
$this->assertContains("stav Vaší objednávky číslo {$order->order_no} byl změněn na {$cfg['Order']['Status']['global'][2]}", $this->mailArchive->getArchive()[0]['body']);
$this->assertContains('Komentář', $this->mailArchive->getArchive()[0]['body']);
$this->assertContains("Demo Kupshop.cz - změna stavu objednávky {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_status_change', $this->mailArchive->getArchive()[0]['body']);
}
public function testEmailInChangeStatusCommentPlaceholders()
{
$cfg = \KupShop\KupShopBundle\Config::get();
$this->mailArchive->clearArchive();
$order = new Order();
$order->createFromDB(2);
$order->changeStatus(2, 'Kód objednávky: {KOD}
{POLOZKY_OBJEDNAVKY}
');
$this->assertContains("stav Vaší objednávky číslo {$order->order_no} byl změněn na {$cfg['Order']['Status']['global'][2]}", $this->mailArchive->getArchive()[0]['body']);
$this->assertContains("Kód objednávky: {$order->order_no}", $this->mailArchive->getArchive()[0]['body']);
$this->assertContains('Seznam objednaného zboží:', $this->mailArchive->getArchive()[0]['body']);
$this->assertContains('Wilson pure battle crew', $this->mailArchive->getArchive()[0]['body']);
$this->assertContains("Demo Kupshop.cz - změna stavu objednávky {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_status_change', $this->mailArchive->getArchive()[0]['body']);
}
public function testEmailInCreateOrder()
{
$this->mailArchive->clearArchive();
$this->loginUser(1);
$this->createCart();
$cart = $this->cart;
$item = [
'id_product' => 10,
'id_variation' => null,
'pieces' => 1,
];
$cart->addItem($item);
$cart->setDeliveryAndPayment(1, 2);
$cart->save();
$cart->fetchAddresses();
$cart->createFromDB();
$order = $cart->submitOrder('cs');
$this->assertContains(" potvrzovacím emailem.
Objednávka číslo: {$order->order_no}", $this->mailArchive->getArchive()[0]['body']);
$this->assertContains("Demo Kupshop.cz - přijata objednávka {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_create', $this->mailArchive->getArchive()[0]['body']);
}
public function testEmailInSentMessage()
{
$this->mailArchive->clearArchive();
$order = new Order();
$order->createFromDB(2);
$order->changeStatus(1, null, true, 'Kurýr');
$this->assertContains('Objednávka odeslána obchodním balíkem české pošty.
', $this->mailArchive->getArchive()[0]['body']);
$this->assertContains('Číslo balíku:
', $this->mailArchive->getArchive()[0]['body']);
$this->assertContains("Demo Kupshop.cz - objednávka {$order->order_no} byla odeslána", $this->mailArchive->getArchive()[0]['subject']);
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_message', $this->mailArchive->getArchive()[0]['body']);
}
public function testEmailInSentMessageComment()
{
$this->mailArchive->clearArchive();
$order = new Order();
$order->createFromDB(2);
$comment = 'Objednávka odeslána obchodním balíkem české pošty.
Číslo balíku: 1234567890
';
$order->changeStatus(1, $comment, true, 'Kurýr');
$this->assertContains($comment, $this->mailArchive->getArchive()[0]['body']);
$this->assertContains("Demo Kupshop.cz - objednávka {$order->order_no} byla odeslána", $this->mailArchive->getArchive()[0]['subject']);
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_message', $this->mailArchive->getArchive()[0]['body']);
}
public function testEmailInSentMessageCommentPlaceholders()
{
$this->mailArchive->clearArchive();
$order = new Order();
$order->createFromDB(2);
$comment = 'Objednávka odeslána obchodním balíkem české pošty.
Číslo balíku: 1234567890
Dobírka: {ZAPLATIT}
{POLOZKY_OBJEDNAVKY}
';
$comment_expected = 'Objednávka odeslána obchodním balíkem české pošty.
Číslo balíku: 1234567890
Dobírka: 822 Kč
';
$order->changeStatus(1, $comment, true, 'Kurýr');
$this->assertContains($comment_expected, $this->mailArchive->getArchive()[0]['body']);
$this->assertContains('Seznam objednaného zboží:', $this->mailArchive->getArchive()[0]['body']);
$this->assertContains('Wilson pure battle crew', $this->mailArchive->getArchive()[0]['body']);
$this->assertContains("Demo Kupshop.cz - objednávka {$order->order_no} byla odeslána", $this->mailArchive->getArchive()[0]['subject']);
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_message', $this->mailArchive->getArchive()[0]['body']);
}
public function testTranslatedEmail()
{
$this->mailArchive->clearArchive();
$this->loginUser(1);
$this->createCart();
$cart = $this->cart;
$item = [
'id_product' => 10,
'id_variation' => null,
'pieces' => 1,
];
$cart->addItem($item);
$cart->setDeliveryAndPayment(1, 2);
$cart->save();
$cart->fetchAddresses();
$cart->createFromDB();
$order = $cart->submitOrder('sk');
$this->assertContains("SK | 6 | přijata objednávka {$order->order_no}", $this->mailArchive->getArchive()[0]['body']);
$this->assertContains("SK | 6 | Demo Kupshop.cz - přijata objednávka {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_create', $this->mailArchive->getArchive()[0]['body']);
}
public function testEmailInCreateOrderPaidGenerateCoupon()
{
$this->mailArchive->clearArchive();
$this->loginUser(1);
$this->updateSQL('products', ['data' => '{"generate_coupon":"Y","generate_coupon_discount":"124"}'], ['id' => 3]);
$this->createCart();
$cart = $this->cart;
$item = [
'id_product' => 3,
'id_variation' => null,
'pieces' => 1,
];
$cart->addItem($item);
$cart->save();
$cart->createFromDB();
$order = $cart->submitOrder('cs');
$payment_id = $order->insertPayment($order->total_price, 'test', null, false, \Payment::METHOD_ONLINE);
$order->sendPaymentReceipt($payment_id);
$this->assertEquals(3, count($this->mailArchive->getArchive()));
$this->assertContains("Demo Kupshop.cz - přijata objednávka {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
$this->assertContains("Děkujeme za zaplacení objednávky {$order->order_no}", $this->mailArchive->getArchive()[2]['subject']);
$this->assertContains("Dárkový poukaz k objednávce {$order->order_no}", $this->mailArchive->getArchive()[1]['subject']);
$coupon = $this->selectSQL('discounts_coupons', ['id_order_purchased' => $order->id])->fetch();
$this->assertNotFalse($coupon);
$this->assertContains($coupon['code'], $this->mailArchive->getArchive()[1]['body']);
$url = "/objednavka/{$order->id}/coupon/{$coupon['id']}?cf=";
$this->assertContains($url, $this->mailArchive->getArchive()[1]['body']);
}
public function testEmailInOrderStorno()
{
$this->mailArchive->clearArchive();
$order = new Order();
$order->createFromDB(2);
$order->storno();
$this->assertContains("stornovali jsme Vaši objednávku {$order->order_no}", $this->mailArchive->getArchive()[0]['body']);
$this->assertContains("Storno objednávky {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_storno', $this->mailArchive->getArchive()[0]['body']);
}
public function testEmailShopkeeper()
{
$this->mailArchive->clearArchive();
$email = $this->get(OrderCreateAdminEmail::class);
$order = new Order();
$order->createFromDB(1);
$email->setOrder($order);
$email->getEmail();
}
private function setTelfaSettings()
{
$telfaSettings = [
'phone' => '499111062',
'phone_id' => '825',
'active_phone' => '499111062',
'phones' => 'volání;volání_vip;test',
'username' => 'jebavy@wpj.cz',
'password' => 'kupkolo',
'sms_number_id' => '979',
'status' => [
0 => '2424',
1 => '2423',
2 => '2436',
3 => '2437',
4 => '2438',
5 => '2439',
6 => '2440',
7 => '2421',
8 => '2441',
9 => '2442',
10 => '',
'storno' => '2443',
'get_number' => '2420',
'non_exists' => '2425',
'interrupt' => '2430',
],
];
$dbcfg = Settings::getDefault();
$dbcfg->telfa = $telfaSettings;
}
public function getDataSet()
{
return $this->getJsonDataSetFromFile();
}
}