/** * Получить данные из текста письма */ public function testGetDataFromMailPart() { // Создаем отправителя $source = new EmailSource(); $source->setName($this->_source); $source->setEmailList("anytest@test.tst, " . $this->_from); $source->save(); $sourceId = $source->getId(); // Создаем парсер $parser = new EmailParser(); $parser->setEmailSourceId($sourceId); $parser->setName($this->_subject); $parser->setSubjectRegexp("описание операции \\(Снятие наличных\\/Платеж\\)"); $parser->setAccountRegexp("Номер карты: (\\d\\d\\d\\d)"); $parser->setTotalRegexp("списано средств: ([\\d\\.,]+) "); $parser->setDescriptionRegexp("Описание: (.+)"); $parser->setType($this->_type); $parser->save(); $email = new myCreateEmailImport($this->_getEmailData()); $email->addPart('qwerty'); $mailArray = myParseEmailImport::getEmailData((string) $email); $getEmail = new myParseEmailImport($mailArray['body'], $parser, $mailArray['to']); $this->assertEquals($this->_getParseData(), $getEmail->getData($this->_operationId)); // Проверим, работает ли регексп чистки суммы $this->_amount = '123,-400x.a00'; $parser->setTotalRegexp("списано средств: ([\\d\\.,a-zA-Z\\-]+) "); $parser->save(); $email = new myCreateEmailImport($this->_getEmailData()); $mailArray = myParseEmailImport::getEmailData((string) $email); $getEmail = new myParseEmailImport($mailArray['body'], $parser, $mailArray['to']); $data = $getEmail->getData($this->_operationId); $this->assertEquals('123400.00', $data['amount']); }
/** * Создать отправителя и парсер * * @return EmailParser */ private function _createSourceAndParser() { // Создаем отправителя $source = new EmailSource(); $source->setName($this->_source); $source->setEmailList("anytest@test.tst, " . $this->_from); $source->save(); $sourceId = $source->getId(); // Создаем парсер $parser = new EmailParser(); $parser->setEmailSourceId($sourceId); $parser->setName($this->_subject); $parser->setSubjectRegexp("описание операции \\(Снятие наличных\\/Платеж\\)"); // MySQL regexp! $parser->setAccountRegexp("Номер карты: (\\d\\d\\d\\d)"); $parser->setTotalRegexp("списано средств: ([\\d\\.,]+) "); $parser->setDescriptionRegexp("Описание: (.+)"); $parser->setType($this->_type); $parser->save(); return $parser; }