public function testExport()
 {
     Artisan::call('ab:install');
     Experiment::find('a')->update(['visitors' => 153, 'engagement' => 35]);
     Goal::create(['name' => 'foo', 'experiment' => 'a', 'count' => 42]);
     $output = new Symfony\Component\Console\Output\BufferedOutput();
     Artisan::call('ab:export', [], $output);
     $report = $output->fetch();
     $this->assertContains('Foo', $report);
     $this->assertContains('153', $report);
     $this->assertContains('35', $report);
     $this->assertContains('42', $report);
     $output = new Symfony\Component\Console\Output\BufferedOutput();
     Artisan::call('ab:export', ['file' => '/tmp/test.csv'], $output);
     $report = $output->fetch();
     $this->assertContains('Creating /tmp/test.csv', $report);
 }
 public function testFirstPageView()
 {
     // Register fake named route
     Route::any('/foobar', function () {
         return 'hello world';
     });
     $headers = Request::instance()->server->getHeaders();
     $request = Request::create('http://localhost/foobar', 'get', [], [], [], $headers);
     Route::dispatch($request);
     $ab = App::make('ab');
     $ab->track($request);
     $ab->experiment();
     $this->assertEquals(1, Experiment::find('a')->visitors);
     $this->assertEquals(0, Experiment::find('a')->engagement);
 }