*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Console\Tests\Output;
use Symfony\Component\Console\Output\Output;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
class OutputTest extends \PHPUnit_Framework_TestCase
{
public function testConstructor()
{
$output = new TestOutput(Output::VERBOSITY_QUIET, true);
$this->assertEquals(Output::VERBOSITY_QUIET, $output->getVerbosity(), '__construct() takes the verbosity as its first argument');
$this->assertTrue($output->isDecorated(), '__construct() takes the decorated flag as its second argument');
}
public function testSetIsDecorated()
{
$output = new TestOutput();
$output->setDecorated(true);
$this->assertTrue($output->isDecorated(), 'setDecorated() sets the decorated flag');
}
public function testSetGetVerbosity()
{
$output = new TestOutput();
$output->setVerbosity(Output::VERBOSITY_QUIET);
$this->assertEquals(Output::VERBOSITY_QUIET, $output->getVerbosity(), '->setVerbosity() sets the verbosity');
$this->assertTrue($output->isQuiet());
$this->assertFalse($output->isVerbose());
$this->assertFalse($output->isVeryVerbose());
$this->assertFalse($output->isDebug());
$output->setVerbosity(Output::VERBOSITY_NORMAL);
$this->assertFalse($output->isQuiet());
$this->assertFalse($output->isVerbose());
$this->assertFalse($output->isVeryVerbose());
$this->assertFalse($output->isDebug());
$output->setVerbosity(Output::VERBOSITY_VERBOSE);
$this->assertFalse($output->isQuiet());
$this->assertTrue($output->isVerbose());
$this->assertFalse($output->isVeryVerbose());
$this->assertFalse($output->isDebug());
$output->setVerbosity(Output::VERBOSITY_VERY_VERBOSE);
$this->assertFalse($output->isQuiet());
$this->assertTrue($output->isVerbose());
$this->assertTrue($output->isVeryVerbose());
$this->assertFalse($output->isDebug());
$output->setVerbosity(Output::VERBOSITY_DEBUG);
$this->assertFalse($output->isQuiet());
$this->assertTrue($output->isVerbose());
$this->assertTrue($output->isVeryVerbose());
$this->assertTrue($output->isDebug());
}
public function testWriteWithVerbosityQuiet()
{
$output = new TestOutput(Output::VERBOSITY_QUIET);
$output->writeln('foo');
$this->assertEquals('', $output->output, '->writeln() outputs nothing if verbosity is set to VERBOSITY_QUIET');
}
public function testWriteAnArrayOfMessages()
{
$output = new TestOutput();
$output->writeln(array('foo', 'bar'));
$this->assertEquals("foo\nbar\n", $output->output, '->writeln() can take an array of messages to output');
}
/**
* @dataProvider provideWriteArguments
*/
public function testWriteRawMessage($message, $type, $expectedOutput)
{
$output = new TestOutput();
$output->writeln($message, $type);
$this->assertEquals($expectedOutput, $output->output);
}
public function provideWriteArguments()
{
return array(
array('