Chris@17: createMock('\JakubOnderka\PhpConsoleColor\ConsoleColor') Chris@17: : $this->getMock('\JakubOnderka\PhpConsoleColor\ConsoleColor'); Chris@17: Chris@17: $mock->expects($this->any()) Chris@17: ->method('apply') Chris@17: ->will($this->returnCallback(function ($style, $text) { Chris@17: return "<$style>$text"; Chris@17: })); Chris@17: Chris@17: $mock->expects($this->any()) Chris@17: ->method('hasTheme') Chris@17: ->will($this->returnValue(true)); Chris@17: Chris@17: return $mock; Chris@17: } Chris@17: Chris@17: protected function setUp() Chris@17: { Chris@17: $this->uut = new Highlighter($this->getConsoleColorMock()); Chris@17: } Chris@17: Chris@17: protected function compare($original, $expected) Chris@17: { Chris@17: $output = $this->uut->getWholeFile($original); Chris@17: $this->assertEquals($expected, $output); Chris@17: } Chris@17: Chris@17: public function testVariable() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: echo \$a; Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testInteger() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: echo 43; Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testFloat() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: echo 43.3; Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testHex() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: echo 0x43; Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testBasicFunction() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: function plus(\$a, \$b) { Chris@17: return \$a + \$b; Chris@17: } Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testStringNormal() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: echo 'Ahoj světe'; Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testStringDouble() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: echo "Ahoj světe"; Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testInstanceof() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: \$a instanceof stdClass; Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: /* Chris@17: * Constants Chris@17: */ Chris@17: public function testConstant() Chris@17: { Chris@17: $constants = array( Chris@17: '__FILE__', Chris@17: '__LINE__', Chris@17: '__CLASS__', Chris@17: '__FUNCTION__', Chris@17: '__METHOD__', Chris@17: '__TRAIT__', Chris@17: '__DIR__', Chris@17: '__NAMESPACE__' Chris@17: ); Chris@17: Chris@17: foreach ($constants as $constant) { Chris@17: $this->compare( Chris@17: << Chris@17: $constant; Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: } Chris@17: Chris@17: /* Chris@17: * Comments Chris@17: */ Chris@17: public function testComment() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: /* Ahoj */ Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testDocComment() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: /** Ahoj */ Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testInlineComment() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: // Ahoj Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testHashComment() Chris@17: { Chris@17: $this->compare( Chris@17: << Chris@17: # Ahoj Chris@17: EOL Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testEmpty() Chris@17: { Chris@17: $this->compare( Chris@17: '' Chris@17: , Chris@17: '' Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testWhitespace() Chris@17: { Chris@17: $this->compare( Chris@17: ' ' Chris@17: , Chris@17: ' ' Chris@17: ); Chris@17: } Chris@17: }