| public function getLastOutOfBandOutput() {}␊ | 
| }␊ | 
| ␊ | 
| class IDF_Scm_Monotone_Test extends PHPUnit_Framework_TestCase␊ | 
| class IDF_Scm_MonotoneTest extends PHPUnit_Framework_TestCase␊ | 
| {␊ | 
| private $proj = null;␊ | 
| ␊ | 
|  | 
| {␊ | 
| $this->proj = new IDF_Project();␊ | 
| $this->proj->id = 1;␊ | 
| $this->proj->name = $this->proj->shortname = 'Test';␊ | 
| $this->proj->name = $this->proj->shortname = 'test';␊ | 
| $this->proj->create();␊ | 
| ␊ | 
| $this->proj->getConf()->setVal('mtn_master_branch', 'master.branch');␊ | 
|  | 
| ␊ | 
| public function testGetRepositorySize()␊ | 
| {␊ | 
| $this->markTestSkipped('Cannot mock real repository file');␊ | 
| $repodir = DATADIR.'/'.__CLASS__.'/%s.mtn';␊ | 
| $GLOBALS['_PX_config']['mtn_repositories'] = $repodir;␊ | 
| $instance = $this->createMock();␊ | 
| $this->assertEquals(335872, $instance->getRepositorySize());␊ | 
| }␊ | 
| ␊ | 
| public function testIsAvailable()␊ | 
|  | 
| ␊ | 
| public function testInBranches()␊ | 
| {␊ | 
| // returns the branches the given commit is in␊ | 
| $this->markTestIncomplete();␊ | 
| $instance = $this->createMock();␊ | 
| ␊ | 
| $stdio = "4567890123456789012345678901234567890123\n";␊ | 
| $instance->getStdio()->setExpectedOutput(array('select', '456'), array(), $stdio);␊ | 
| ␊ | 
| $stdio =<<<END␊ | 
| key [1aaecf3a7c227e5545b0504aea5d3716d3128117]␊ | 
| signature "ok"␊ | 
| name "branch"␊ | 
| value "main.branch"␊ | 
| trust "trusted"␊ | 
| ␊ | 
| key [aea5d3716d31281171aaecf3a7c227e5545b0504]␊ | 
| signature "ok"␊ | 
| name "branch"␊ | 
| value "feature.branch"␊ | 
| trust "trusted"␊ | 
| END;␊ | 
| $instance->getStdio()->setExpectedOutput(array('certs', '4567890123456789012345678901234567890123'), array(), $stdio);␊ | 
| ␊ | 
| $out = $instance->inBranches('456', null);␊ | 
| $this->assertEquals(array('h:main.branch', 'h:feature.branch'), $out);␊ | 
| }␊ | 
| ␊ | 
| public function testGetTags()␊ | 
|  | 
| ␊ | 
| public function testInTags()␊ | 
| {␊ | 
| // returns the tags that are attached to the given commit␊ | 
| $this->markTestIncomplete();␊ | 
| $instance = $this->createMock();␊ | 
| ␊ | 
| $stdio = "3456789012345678901234567890123456789012\n";␊ | 
| $instance->getStdio()->setExpectedOutput(array('select', '345'), array(), $stdio);␊ | 
| ␊ | 
| $stdio =<<<END␊ | 
| key [1aaecf3a7c227e5545b0504aea5d3716d3128117]␊ | 
| signature "ok"␊ | 
| name "tag"␊ | 
| value "release-1.0rc"␊ | 
| trust "trusted"␊ | 
| ␊ | 
| key [1aaecf3a7c227e5545b0504aea5d3716d3128117]␊ | 
| signature "ok"␊ | 
| name "tag"␊ | 
| value "release-1.0"␊ | 
| trust "trusted"␊ | 
| ␊ | 
| key [aea5d3716d31281171aaecf3a7c227e5545b0504]␊ | 
| signature "ok"␊ | 
| name "tag"␊ | 
| value "release-1.0"␊ | 
| trust "trusted"␊ | 
| END;␊ | 
| $instance->getStdio()->setExpectedOutput(array('certs', '3456789012345678901234567890123456789012'), array(), $stdio);␊ | 
| ␊ | 
| $out = $instance->inTags('345', null);␊ | 
| $this->assertEquals(array('t:release-1.0rc', 't:release-1.0'), $out);␊ | 
| }␊ | 
| ␊ | 
| public function testGetTree()␊ | 
|  | 
| ␊ | 
| public function testFindAuthor()␊ | 
| {␊ | 
| $this->markTestSkipped('This functionality here should reside in IDF_Scm');␊ | 
| $this->markTestSkipped('code under test should reside in IDF_Scm');␊ | 
| }␊ | 
| ␊ | 
| public function testGetAnonymousAccessUrl()␊ | 
| {␊ | 
| // test the generation of the anonymous remote URL␊ | 
| $this->markTestIncomplete();␊ | 
| $this->markTestSkipped('cannot test this static method');␊ | 
| }␊ | 
| ␊ | 
| public function testGetAuthAccessUrl()␊ | 
| {␊ | 
| // test the generation of the authenticated remote URL (only really visible for SSH)␊ | 
| $this->markTestIncomplete();␊ | 
| $this->markTestSkipped('cannot test this static method');␊ | 
| }␊ | 
| ␊ | 
| public function testFactory()␊ | 
| {␊ | 
| $this->markTestSkipped('Cannot mock real repository');␊ | 
| $this->markTestSkipped('cannot test this static method');␊ | 
| }␊ | 
| ␊ | 
| public function testValidateRevision()␊ | 
|  | 
| $this->assertFalse($instance->getPathInfo('foo', 't:123'));␊ | 
| ␊ | 
| //␊ | 
| // existing file file␊ | 
| // existing file␊ | 
| //␊ | 
| $stdio =<<<END␊ | 
| key [1aaecf3a7c227e5545b0504aea5d3716d3128117]␊ | 
|  | 
| $file = $instance->getPathInfo('doc/AUTHORS', 't:123');␊ | 
| $this->assertEquals('doc/AUTHORS', $file->fullpath);␊ | 
| $this->assertEquals('doc/AUTHORS', $file->efullpath);␊ | 
| $this->assertEquals('de9ed2fffe2e8c0094bf51bb66d1c1ff2deeaa03', $file->hash);␊ | 
| $this->assertEquals('AUTHORS', $file->file);␊ | 
| $this->assertEquals('blob', $file->type);␊ | 
| $this->assertEquals(17024, $file->size);␊ | 
|  | 
| ␊ | 
| public function testGetFile()␊ | 
| {␊ | 
| // test cmd_only and full file fetching␊ | 
| $this->markTestIncomplete();␊ | 
| $instance = $this->createMock();␊ | 
| $thrown = false;␊ | 
| try␊ | 
| {␊ | 
| $instance->getFile(null, true);␊ | 
| }␊ | 
| catch (Pluf_Exception_NotImplemented $e)␊ | 
| {␊ | 
| $thrown = true;␊ | 
| }␊ | 
| $this->assertTrue($thrown);␊ | 
| ␊ | 
| $stdio = 'Foobar';␊ | 
| $instance->getStdio()->setExpectedOutput(array('get_file', '1234567890123456789012345678901234567890'), array(), $stdio);␊ | 
| ␊ | 
| $obj = new stdClass();␊ | 
| $obj->hash = '1234567890123456789012345678901234567890';␊ | 
| ␊ | 
| $this->assertEquals('Foobar', $instance->getFile($obj));␊ | 
| }␊ | 
| ␊ | 
| public function testGetChanges()␊ | 
|  | 
| ␊ | 
| public function testGetCommit()␊ | 
| {␊ | 
| // test get commit information with and without a diff text␊ | 
| // test multiple branches, dates, authors, aso␊ | 
| $this->markTestIncomplete();␊ | 
| $instance = $this->createMock();␊ | 
| ␊ | 
| $this->assertFalse($instance->getCommit('t:234'));␊ | 
| ␊ | 
| $stdio = "2345678901234567890123456789012345678901\n";␊ | 
| $instance->getStdio()->setExpectedOutput(array('select', 't:234'), array(), $stdio);␊ | 
| ␊ | 
| $stdio = "1234567890123456789012345678901234567891\n".␊ | 
| "1234567890123456789012345678901234567892\n";␊ | 
| $instance->getStdio()->setExpectedOutput(array('parents', '2345678901234567890123456789012345678901'), array(), $stdio);␊ | 
| ␊ | 
| $stdio =<<<END␊ | 
| key [1aaecf3a7c227e5545b0504aea5d3716d3128117]␊ | 
| signature "ok"␊ | 
| name "author"␊ | 
| value "me@thomaskeller.biz"␊ | 
| trust "trusted"␊ | 
| ␊ | 
| key [1aaecf3a7c227e5545b0504aea5d3716d3128117]␊ | 
| signature "ok"␊ | 
| name "author"␊ | 
| value "graydon@pobox.com"␊ | 
| trust "trusted"␊ | 
| ␊ | 
| key [1aaecf3a7c227e5545b0504aea5d3716d3128117]␊ | 
| signature "ok"␊ | 
| name "branch"␊ | 
| value "main.branch"␊ | 
| trust "trusted"␊ | 
| ␊ | 
| key [1aaecf3a7c227e5545b0504aea5d3716d3128117]␊ | 
| signature "ok"␊ | 
| name "branch"␊ | 
| value "feature.branch"␊ | 
| trust "trusted"␊ | 
| ␊ | 
| key [1aaecf3a7c227e5545b0504aea5d3716d3128117]␊ | 
| signature "ok"␊ | 
| name "changelog"␊ | 
| value "something changed"␊ | 
| trust "trusted"␊ | 
| ␊ | 
| key [1aaecf3a7c227e5545b0504aea5d3716d3128117]␊ | 
| signature "ok"␊ | 
| name "changelog"␊ | 
| value "something changed here as␊ | 
| well, unbelievable!"␊ | 
| trust "trusted"␊ | 
| ␊ | 
| key [1aaecf3a7c227e5545b0504aea5d3716d3128117]␊ | 
| signature "ok"␊ | 
| name "date"␊ | 
| value "2011-03-19T13:59:47"␊ | 
| trust "trusted"␊ | 
| END;␊ | 
| $instance->getStdio()->setExpectedOutput(array('certs', '2345678901234567890123456789012345678901'), array(), $stdio);␊ | 
| ␊ | 
| $commit = $instance->getCommit('t:234');␊ | 
| ␊ | 
| $this->assertEquals('2345678901234567890123456789012345678901', $commit->commit);␊ | 
| $this->assertEquals(array('1234567890123456789012345678901234567891',␊ | 
| '1234567890123456789012345678901234567892'),␊ | 
| $commit->parents);␊ | 
| $this->assertEquals('me@thomaskeller.biz, graydon@pobox.com', $commit->author);␊ | 
| $this->assertEquals('2011-03-19 13:59:47', $commit->date);␊ | 
| $this->assertEquals('something changed', $commit->title);␊ | 
| $this->assertEquals("---\nsomething changed here as\nwell, unbelievable!", $commit->full_message);␊ | 
| $this->assertEquals('main.branch, feature.branch', $commit->branch);␊ | 
| $this->assertEquals('', $commit->diff);␊ | 
| }␊ | 
| ␊ | 
| public function testGetExtraProperties()␊ | 
| {␊ | 
| // test array('parents' => array(rev1, rev2, ...)) or array() if root revision␊ | 
| $this->markTestIncomplete();␊ | 
| $instance = $this->createMock();␊ | 
| ␊ | 
| $this->assertEquals(array(), $instance->getExtraProperties(new stdClass()));␊ | 
| ␊ | 
| $cobj = (object) array('parents' => array('1234567890123456789012345678901234567891'));␊ | 
| ␊ | 
| $this->assertEquals(array('parents' => array('1234567890123456789012345678901234567891')),␊ | 
| $instance->getExtraProperties($cobj));␊ | 
| }␊ | 
| ␊ | 
| public function testIsCommitLarge()␊ |