setAlias('foo'); $pref = new UserPreference('foo', 'bar'); $sut = new UserPreferenceEvent($user, []); $this->assertEquals($user, $sut->getUser()); $this->assertEquals([], $sut->getPreferences()); $sut->addPreference($pref); $this->assertEquals([$pref], $sut->getPreferences()); } public function testDuplicatePreferenceThrowsException() { $this->expectException(\InvalidArgumentException::class); $user = new User(); $user->setAlias('foo'); $pref = new UserPreference('foo', 'bar'); $pref2 = new UserPreference('foo', 'hello'); $sut = new UserPreferenceEvent($user, []); $sut->addPreference($pref); $sut->addPreference($pref2); } }