public function testPushPop()
 {
     $conf = new ConfigurationFixture();
     $pushed = $conf->push('queue', 'first_val');
     $this->assertTrue($pushed->hasOption('queue'));
     $this->assertInternalType('array', $pushed->getOption('queue'));
     $this->assertCount(1, $pushed->getOption('queue'));
     $this->assertContains('first_val', $pushed->getOption('queue'));
     $pushed = $pushed->push('queue', 'second_val');
     $this->assertCount(2, $pushed->getOption('queue'));
     $this->assertContains('first_val', $pushed->getOption('queue'));
     $this->assertContains('second_val', $pushed->getOption('queue'));
     $conf = new ConfigurationFixture();
     $conf->preserveInstance = true;
     $conf->push('queue', 'first_val');
     $conf->push('queue', 'second_val');
     $pop = $conf->pop('queue');
     $this->assertEquals('second_val', $pop);
     $pop = $conf->pop('queue');
     $this->assertEquals('first_val', $pop);
     $pop = $conf->pop('queue');
     $this->assertNull($pop);
     $conf = new ConfigurationFixture();
     $extra = $conf->option('test', 'value');
     $pop = $extra->pop('test');
     $this->assertEquals('value', $pop);
     $pop = $extra->pop('test');
     $this->assertNull($pop);
     $conf = new ConfigurationFixture();
     $pop = $conf->pop('empty');
     $this->assertNull($pop);
     $conf = new ConfigurationFixture();
     $conf->setConfig(['queue' => 'first_val']);
     $pushed = $conf->push('queue', 'second_val', 'third_val');
     $this->assertCount(3, $pushed->getOption('queue'));
     $this->assertContains('first_val', $pushed->getOption('queue'));
     $this->assertContains('second_val', $pushed->getOption('queue'));
     $this->assertContains('third_val', $pushed->getOption('queue'));
 }