public function testEnvironmentDetection()
{
Environment::set(new MockRequest(array('SERVER_ADDR' => '::1')));
$this->assertTrue(Environment::is('development'));
$request = new MockRequest(array('SERVER_ADDR' => '1.1.1.1', 'HTTP_HOST' => 'test.local'));
Environment::set($request);
$this->assertTrue(Environment::is('test'));
$request = new MockRequest(array('SERVER_ADDR' => '1.1.1.1', 'HTTP_HOST' => 'www.com'));
Environment::set($request);
$isProduction = Environment::is('production');
$this->assertTrue($isProduction);
$request = new MockRequest(array('SERVER_ADDR' => '::1'));
$request->url = '/test/myTest';
Environment::set($request);
$this->assertTrue(Environment::is('test'));
$request = new MockRequest(array('SERVER_ADDR' => '::1'));
$request->url = '/test';
Environment::set($request);
$this->assertTrue(Environment::is('test'));
$request = new MockRequest();
$request->command = 'test';
Environment::set($request);
$this->assertTrue(Environment::is('test'));
$request = new MockRequest();
$request->env = 'test';
Environment::set($request);
$this->assertTrue(Environment::is('test'));
$request = new MockRequest(array('PLATFORM' => 'CLI'));
Environment::set($request);
$this->assertTrue(Environment::is('development'));
$request = new MockRequest();
$request->params = array('env' => 'production');
Environment::set($request);
$this->assertTrue(Environment::is('production'));
}