Skip to content
This repository has been archived by the owner on Sep 24, 2020. It is now read-only.

Commit

Permalink
Add core unit tests (#170)
Browse files Browse the repository at this point in the history
  • Loading branch information
Danny van der Sluijs authored and ovr committed Nov 22, 2016
1 parent d8102bc commit f80883f
Show file tree
Hide file tree
Showing 3 changed files with 171 additions and 0 deletions.
39 changes: 39 additions & 0 deletions tests/PHPSA/ApplicationTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace Tests\PHPSA;

use PHPSA\Application;

class ApplicationTest extends TestCase
{
/**
* @covers \PHPSA\Application::__construct
*/
public function testConstructor()
{
$application = new Application();

$this->assertInstanceOf('\PHPSA\Application', $application);
$this->assertInstanceOf('\Symfony\Component\Console\Application', $application);
}

/**
* @covers \PHPSA\Application::getConfiguration
*/
public function testGetConfiguration()
{
$application = new Application();

$this->assertInstanceOf('\PHPSA\Configuration', $application->getConfiguration());
}

/**
* @covers \PHPSA\Application::getIssuesCollector
*/
public function testGetIssueCollector()
{
$application = new Application();

$this->assertInstanceOf('\PHPSA\IssuesCollector', $application->getIssuesCollector());
}
}
24 changes: 24 additions & 0 deletions tests/PHPSA/IssuesCollectorTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace Tests\PHPSA;

use PHPSA\IssuesCollector;

class IssuesCollectorTest extends \PHPUnit_Framework_TestCase
{
/**
* @covers \PHPSA\IssuesCollector::addIssue()
* @covers \PHPSA\IssuesCollector::getIssues()
*/
public function testAddingIssue()
{
$collector = new IssuesCollector();

$this->assertNull($collector->addIssue(100, 'Test issue', __FILE__, 26));
$this->assertCount(1, $collector->getIssues());
$this->assertSame(
[['type' => 100, 'message' => 'Test issue', 'file' => __FILE__, 'line' => 26]],
$collector->getIssues()
);
}
}
108 changes: 108 additions & 0 deletions tests/PHPSA/ScopePointerTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<?php

namespace Tests\PHPSA;

use PHPSA\ScopePointer;

class ScopePointerTest extends TestCase
{
/**
* @covers \PHPSA\ScopePointer::__construct
*/
public function testConstructor()
{
$object = new \stdClass;
$scopePointer = new ScopePointer($object);

$this->assertInstanceOf('\PHPSA\ScopePointer', $scopePointer);
}

/**
* @covers \PHPSA\ScopePointer::getObject
*/
public function testGetObject()
{
$object = new \stdClass;
$scopePointer = new ScopePointer($object);

$this->assertSame($object, $scopePointer->getObject());
}

/**
* @covers \PHPSA\ScopePointer::isClassMethod()
*/
public function testIsClassMethod()
{
$class = $this->getMockBuilder('\PHPSA\Definition\ClassMethod')
->disableOriginalConstructor()
->getMock();
$scopePointer = new ScopePointer($class);

$this->assertTrue($scopePointer->isClassMethod());
}

/**
* @covers \PHPSA\ScopePointer::isClassMethod()
* @dataProvider notClassMethodDataProvider
*/
public function testIsNotClassMethod($object)
{
$scopePointer = new ScopePointer($object);

$this->assertFalse($scopePointer->isClassMethod());
}

/**
* @covers \PHPSA\ScopePointer::isFunction()
*/
public function testIsFunction()
{
$function = $this->getMockBuilder('\PHPSA\Definition\FunctionDefinition')
->disableOriginalConstructor()
->getMock();
$scopePointer = new ScopePointer($function);

$this->assertTrue($scopePointer->isFunction());
}

/**
* @covers \PHPSA\ScopePointer::isFunction()
* @dataProvider notFunctionDataProvider
*/
public function testIsNotFunction($object)
{
$scopePointer = new ScopePointer($object);

$this->assertFalse($scopePointer->isFunction());
}

public function notClassMethodDataProvider()
{
$function = $this->getMockBuilder('\PHPSA\Definition\FunctionDefinition')
->disableOriginalConstructor()
->getMock();

return [
'String' => ['Random characters'],
'Integer' => [42],
'Float' => [pi()],
'StdClass' => [new \StdClass],
'FunctionDefinition' => [$function]
];
}

public function notFunctionDataProvider()
{
$class = $this->getMockBuilder('\PHPSA\Definition\ClassMethod')
->disableOriginalConstructor()
->getMock();

return [
'String' => ['Random characters'],
'Integer' => [42],
'Float' => [pi()],
'StdClass' => [new \StdClass],
'ClassMethod' => [$class]
];
}
}

0 comments on commit f80883f

Please sign in to comment.