<?php use Opdavies\GmailFilterBuilder\Builder; use Opdavies\GmailFilterBuilder\Filter; use PHPUnit\Framework\TestCase; class BuilderTest extends TestCase { public function testBuild() { $filterA = (new Filter()) ->from(['foo@example.com', 'test@example.com']) ->label('Some label') ->archive(); $filterB = (new Filter()) ->has('from:bar@example.com') ->star() ->important(); $result = new Builder([$filterA, $filterB]); $expected = "<?xml version='1.0' encoding='UTF-8'?>"; $expected .= "<feed xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>"; $expected .= '<entry>'; $expected .= "<apps:property name='from' value='foo@example.com|test@example.com'/>"; $expected .= "<apps:property name='label' value='Some label'/>"; $expected .= "<apps:property name='shouldArchive' value='true'/>"; $expected .= '</entry>'; $expected .= '<entry>'; $expected .= "<apps:property name='hasTheWord' value='from:bar@example.com'/>"; $expected .= "<apps:property name='shouldStar' value='true'/>"; $expected .= "<apps:property name='shouldAlwaysMarkAsImportant' value='true'/>"; $expected .= '</entry>'; $expected .= '</feed>'; $this->assertEquals($expected, $result); } }