public function testProcessGlobals()
{
$documents = array(new Document(), new Document(), new Document(), new Document(null, null, Document::TYPE_POST), new Document(null, null, Document::TYPE_POST), new Document(null, null, Document::TYPE_POST), new Document(null, null, Document::TYPE_POST), new Document(null, null, Document::TYPE_POST), new Document(null, null, Document::TYPE_POST));
$documents[0]->setFilePath('a');
$documents[0]->setTags('tag1');
$documents[1]->setFilePath('b');
$documents[1]->setTags('tag2');
$documents[2]->setFilePath('c');
$documents[2]->setTags('tag2');
$documents[3]->setFilePath('d');
$documents[3]->setNavigations('nav1');
$documents[3]->setMetadata('date', new \DateTime('2000-01-01'));
$documents[4]->setFilePath('e');
$documents[4]->setNavigations('nav1');
$documents[4]->setMetadata('date', new \DateTime('2000-01-10'));
$documents[5]->setFilePath('f');
$documents[6]->setFilePath('g');
$documents[6]->setMetadata('date', new \DateTime('2000-01-10'));
$documents[7]->setFilePath('h');
$documents[8]->setFilePath('i');
$documents[8]->setMetadata('date', new \DateTime('2000-01-01'));
$globalVars = $this->processor->processGlobals($documents);
$this->assertCount(9, $globalVars->documents);
$this->assertSame($documents, $globalVars->documents);
$this->assertCount(2, $globalVars->tags);
$this->assertCount(1, $globalVars->tags['tag1']);
$this->assertContains($documents[0], $globalVars->tags['tag1']);
$this->assertCount(2, $globalVars->tags['tag2']);
$this->assertContains($documents[1], $globalVars->tags['tag2']);
$this->assertContains($documents[2], $globalVars->tags['tag2']);
$this->assertCount(1, $globalVars->navigations);
$this->assertCount(2, $globalVars->navigations['nav1']);
$this->assertContains($documents[3], $globalVars->navigations['nav1']);
$this->assertContains($documents[4], $globalVars->navigations['nav1']);
$this->assertCount(3, $globalVars->unknowns);
$this->assertContains($documents[0], $globalVars->unknowns);
$this->assertContains($documents[1], $globalVars->unknowns);
$this->assertContains($documents[2], $globalVars->unknowns);
$this->assertCount(6, $globalVars->posts);
$this->assertContains($documents[3], $globalVars->posts);
$this->assertContains($documents[4], $globalVars->posts);
$this->assertContains($documents[5], $globalVars->posts);
$this->assertContains($documents[6], $globalVars->posts);
$this->assertEquals(array('f', 'h', 'd', 'i', 'e', 'g'), array_keys($globalVars->posts));
}