public static function clearUnusedData()
 {
     foreach (self::$layoutIds as $layoutId) {
         $layout = new MailtankLayout();
         $layout->id = $layoutId;
         $layout->delete();
     }
     self::$layoutIds = [];
 }
 private function clearUnusedData()
 {
     foreach (self::$subscribers as $subscriberId) {
         $subscriber = MailtankSubscriber::findByPk($subscriberId);
         $this->assertTrue($subscriber->delete());
     }
     self::$subscribers = array();
     if (self::$layoutId !== false) {
         $layout = new MailtankLayout();
         $layout->id = self::$layoutId;
         $this->assertTrue($layout->delete());
         self::$layoutId = false;
     }
 }
 public function testGetById()
 {
     $layout = self::createBasicModel();
     $res = $layout->save();
     if (!$res) {
         print_r($layout->getErrors());
         $this->assertTrue(false);
     }
     self::$layoutId = $layout->id;
     try {
         MailtankLayout::findByPk($layout->id);
     } catch (MailtankException $e) {
         $this->clearUnusedData();
         return;
     }
     $this->fail('Layout cant be retrieved by id');
     $this->clearUnusedData();
 }
 /**
  * Create template on mailtank
  * @param string $templateName name of template
  * @param string $basePath path to root directory of mailtank templates
  * @param string $prefix Unique for project prefix for creating template name
  */
 private function createTemplate($templateName, $basePath, $prefix)
 {
     $html = self::renderTemplate($templateName . '.html', $basePath);
     $textPlain = self::renderTemplate($templateName . '.txt', $basePath);
     // Check for template errors
     $html = self::checkTemplate($templateName . '.html', $html);
     if ($html === false) {
         return;
     }
     $textPlain = self::checkTemplate($templateName . '.txt', $textPlain);
     if ($textPlain === false) {
         return;
     }
     // Create unique mailtank ID from domain and template name
     $id = static::createLayoutId($templateName, $prefix);
     try {
         $layout = new MailtankLayout();
         $layout->setAttributes(['id' => $id]);
         $layout->delete();
     } catch (\Exception $e) {
         // Do nothing
     }
     $layout = new MailtankLayout();
     $attr = ['id' => $id, 'name' => $id, 'subject_markup' => '{{subject}}', 'markup' => $html, 'plaintext_markup' => $textPlain];
     $layout->setAttributes($attr);
     if ($layout->save()) {
         if (self::$useConsoleOut) {
             Console::outputColored("Template <%g{$templateName}%n> was create, id=" . $layout->id);
         }
     } else {
         $err = [];
         foreach ($layout->getErrors() as $k => $v) {
             $err[] = $k . ' : ' . $v;
         }
         if (!self::$useConsoleOut) {
             throw new MailtankException("Template <%m{$templateName}%n> wasn't create" . PHP_EOL . implode(PHP_EOL, $err));
         }
         Console::outputColored("Template <%m{$templateName}%n> wasn't create");
         Console::addIndent();
         foreach ($err as $v) {
             Console::error($v);
         }
         Console::removeIndent();
     }
 }