/** * Tests the sendMessage method. */ public function testSendMessage() { $this->twig->expects($this->once())->method('loadTemplate')->with($this->equalTo('MremiContactBundle:Contact:email.txt.twig'))->will($this->returnValue($this->template)); $contact = new Contact(); $contact->setEmail('*****@*****.**'); $contact->setFirstName('Rémi'); $contact->setLastName('Marseille'); $this->template->expects($this->exactly(3))->method('renderBlock')->withConsecutive(array($this->equalTo('subject'), $this->equalTo(array('contact' => $contact))), array($this->equalTo('body_text'), $this->equalTo(array('contact' => $contact))), array($this->equalTo('body_html'), $this->equalTo(array('contact' => $contact))))->willReturnOnConsecutiveCalls('Subject', 'Body text', 'Body HTML'); $message = $this->getMockBuilder('\\Swift_Message')->disableOriginalConstructor()->getMock(); $message->expects($this->once())->method('setSubject')->with($this->equalTo('Subject'))->willReturnSelf(); $message->expects($this->once())->method('setFrom')->with($this->equalTo(array('*****@*****.**' => 'Rémi Marseille')))->willReturnSelf(); $message->expects($this->once())->method('setTo')->with($this->equalTo(array('*****@*****.**' => 'Webmaster')))->willReturnSelf(); $message->expects($this->once())->method('setBody')->with($this->equalTo('Body HTML'), $this->equalTo('text/html'))->willReturnSelf(); $message->expects($this->once())->method('addPart')->with($this->equalTo('Body text'), $this->equalTo('text/plain'))->willReturnSelf(); $this->serviceMailer->expects($this->once())->method('createMessage')->will($this->returnValue($message)); $this->mailer->expects($this->once())->method('send')->with($this->equalTo($message))->will($this->returnValue(1)); $this->assertSame(1, $this->serviceMailer->sendMessage($contact)); }
/** * Tests the serialize method. */ public function testSerialize() { $contact = new Contact(); $contact->setTitle(Contact::TITLE_MR); $contact->setFirstName('Rémi'); $contact->setLastName('Marseille'); $contact->setEmail('*****@*****.**'); $contact->setSubject('subject'); $contact->setMessage('message'); $contact->setCreatedAt(new \DateTime('2013-07-11T10:07:00+02:00')); $expected = 'a:7:{s:5:"title";s:2:"mr";s:9:"firstName";s:5:"Rémi";s:8:"lastName";s:9:"Marseille";s:5:"email";s:24:"*****@*****.**";s:7:"subject";s:7:"subject";s:7:"message";s:7:"message";s:9:"createdAt";s:25:"2013-07-11T10:07:00+02:00";}'; $this->assertSame($expected, $contact->serialize()); }