1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10:
11:
12: namespace Symfony\Component\EventDispatcher\Tests;
13:
14: use Symfony\Component\EventDispatcher\GenericEvent;
15:
16: 17: 18:
19: class GenericEventTest extends \PHPUnit_Framework_TestCase
20: {
21: 22: 23:
24: private $event;
25:
26: private $subject;
27:
28: 29: 30:
31: protected function setUp()
32: {
33: parent::setUp();
34:
35: $this->subject = new \stdClass();
36: $this->event = new GenericEvent($this->subject, array('name' => 'Event'));
37: }
38:
39: 40: 41:
42: protected function tearDown()
43: {
44: $this->subject = null;
45: $this->event = null;
46:
47: parent::tearDown();
48: }
49:
50: public function testConstruct()
51: {
52: $this->assertEquals($this->event, new GenericEvent($this->subject, array('name' => 'Event')));
53: }
54:
55: 56: 57:
58: public function testGetArguments()
59: {
60:
61: $this->assertSame(array('name' => 'Event'), $this->event->getArguments());
62: }
63:
64: public function testSetArguments()
65: {
66: $result = $this->event->setArguments(array('foo' => 'bar'));
67: $this->assertAttributeSame(array('foo' => 'bar'), 'arguments', $this->event);
68: $this->assertSame($this->event, $result);
69: }
70:
71: public function testSetArgument()
72: {
73: $result = $this->event->setArgument('foo2', 'bar2');
74: $this->assertAttributeSame(array('name' => 'Event', 'foo2' => 'bar2'), 'arguments', $this->event);
75: $this->assertEquals($this->event, $result);
76: }
77:
78: public function testGetArgument()
79: {
80:
81: $this->assertEquals('Event', $this->event->getArgument('name'));
82: }
83:
84: 85: 86:
87: public function testGetArgException()
88: {
89: $this->event->getArgument('nameNotExist');
90: }
91:
92: public function testOffsetGet()
93: {
94:
95: $this->assertEquals('Event', $this->event['name']);
96:
97:
98: $this->setExpectedException('InvalidArgumentException');
99: $this->assertFalse($this->event['nameNotExist']);
100: }
101:
102: public function testOffsetSet()
103: {
104: $this->event['foo2'] = 'bar2';
105: $this->assertAttributeSame(array('name' => 'Event', 'foo2' => 'bar2'), 'arguments', $this->event);
106: }
107:
108: public function testOffsetUnset()
109: {
110: unset($this->event['name']);
111: $this->assertAttributeSame(array(), 'arguments', $this->event);
112: }
113:
114: public function testOffsetIsset()
115: {
116: $this->assertTrue(isset($this->event['name']));
117: $this->assertFalse(isset($this->event['nameNotExist']));
118: }
119:
120: public function testHasArgument()
121: {
122: $this->assertTrue($this->event->hasArgument('name'));
123: $this->assertFalse($this->event->hasArgument('nameNotExist'));
124: }
125:
126: public function testGetSubject()
127: {
128: $this->assertSame($this->subject, $this->event->getSubject());
129: }
130:
131: public function testHasIterator()
132: {
133: $data = array();
134: foreach ($this->event as $key => $value) {
135: $data[$key] = $value;
136: }
137: $this->assertEquals(array('name' => 'Event'), $data);
138: }
139: }
140: