Example #1
0
 /**
  * Tests arguments related methods.
  *
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage Argument "none" not found.
  */
 public function testArguments()
 {
     $subject = new \Threaded();
     $arguments = new \Threaded();
     $event = new Event($subject, $arguments);
     $event->setArgument('scalar', 'scalarValue');
     $event->setArgument('array', ['a', 'b', 'c']);
     $foo = new \Stdclass();
     $foo->value = 'plain value';
     $event->setArgument('plain', $foo);
     $bar = new \Threaded();
     $bar['value'] = 'threaded value';
     $event->setArgument('threaded', $bar);
     $this->assertTrue($event->hasArgument('scalar'));
     $this->assertTrue($event->hasArgument('array'));
     $this->assertTrue($event->hasArgument('plain'));
     $this->assertTrue($event->hasArgument('threaded'));
     $this->assertEquals('scalarValue', $event->getArgument('scalar'));
     $this->assertSame(['a', 'b', 'c'], array_values((array) $event->getArgument('array')));
     $this->assertEquals($foo, $event->getArgument('plain'));
     $this->assertNotSame($foo, $event->getArgument('plain'));
     $this->assertSame($bar, $event->getArgument('threaded'));
     $event->getArgument('none');
 }