wp = new WPFunctions(); $this->settings = SettingsController::getInstance(); $this->original_wc_settings = $this->settings->get('woocommerce'); $this->transactional_emails = new TransactionalEmails($this->wp, $this->settings); } function testInitCreatesTransactionalEmailAndSavesItsId() { $this->transactional_emails->init(); $email = Newsletter::where('type', Newsletter::TYPE_WC_TRANSACTIONAL_EMAIL)->findOne(); $id = $this->settings->get(TransactionalEmails::SETTING_EMAIL_ID, null); expect($email)->notEmpty(); expect($id)->notNull(); expect($email->id)->equals($id); } function testInitDoesntCreateTransactionalEmailIfSettingAlreadySet() { $this->settings->set(TransactionalEmails::SETTING_EMAIL_ID, 1); $this->transactional_emails->init(); $email = Newsletter::where('type', Newsletter::TYPE_WC_TRANSACTIONAL_EMAIL)->findOne(); expect($email)->equals(null); } function testInitUsesImageFromWCSettings() { $wp = Stub::make(new WPFunctions, ['getOption' => function($name) { expect($name)->equals('woocommerce_email_header_image'); return 'my-awesome-image-url'; }]); $transactional_emails = new TransactionalEmails($wp, $this->settings); $transactional_emails->init(); $email = Newsletter::where('type', Newsletter::TYPE_WC_TRANSACTIONAL_EMAIL)->findOne(); expect($email)->notEmpty(); expect($email->body)->contains('my-awesome-image-url'); } function _after() { \ORM::raw_execute('TRUNCATE ' . Newsletter::$_table); $this->settings->set('woocommerce', $this->original_wc_settings); } }