File tree Expand file tree Collapse file tree 3 files changed +26
-5
lines changed Expand file tree Collapse file tree 3 files changed +26
-5
lines changed Original file line number Diff line number Diff line change @@ -59,6 +59,7 @@ function setAction(Action $action) {
5959- ` __toString() ` You can ` echo $myValue ` , it will display the enum value (value of the constant)
6060- ` getValue() ` Returns the current value of the enum
6161- ` getKey() ` Returns the key of the current value on Enum
62+ - ` equals() ` Tests whether enum instances are equal (returns ` true ` if enum values are equal, ` false ` otherwise)
6263
6364Static methods:
6465
Original file line number Diff line number Diff line change @@ -78,7 +78,7 @@ public function __toString()
7878 *
7979 * @return bool True if Enums are equal, false if not equal
8080 */
81- public function equals (Enum $ enum )
81+ final public function equals (Enum $ enum )
8282 {
8383 return $ this ->getValue () === $ enum ->getValue ();
8484 }
Original file line number Diff line number Diff line change @@ -214,12 +214,32 @@ public function searchProvider() {
214214 );
215215 }
216216
217+ /**
218+ * equals()
219+ */
217220 public function testEquals ()
218221 {
219- $ enum = new EnumFixture (EnumFixture::FOO );
220- $ this ->assertTrue ($ enum ->equals (EnumFixture::FOO ()));
222+ $ foo = new EnumFixture (EnumFixture::FOO );
223+ $ number = new EnumFixture (EnumFixture::NUMBER );
224+ $ anotherFoo = new EnumFixture (EnumFixture::FOO );
225+
226+ $ this ->assertTrue ($ foo ->equals ($ foo ));
227+ $ this ->assertFalse ($ foo ->equals ($ number ));
228+ $ this ->assertTrue ($ foo ->equals ($ anotherFoo ));
229+ }
221230
222- $ enum = new EnumFixture (EnumFixture::PROBLEMATIC_BOOLEAN_FALSE );
223- $ this ->assertFalse ($ enum ->equals (EnumFixture::PROBLEMATIC_EMPTY_STRING ()));
231+ /**
232+ * equals()
233+ */
234+ public function testEqualsComparesProblematicValuesProperly ()
235+ {
236+ $ false = new EnumFixture (EnumFixture::PROBLEMATIC_BOOLEAN_FALSE );
237+ $ emptyString = new EnumFixture (EnumFixture::PROBLEMATIC_EMPTY_STRING );
238+ $ null = new EnumFixture (EnumFixture::PROBLEMATIC_NULL );
239+
240+ $ this ->assertTrue ($ false ->equals ($ false ));
241+ $ this ->assertFalse ($ false ->equals ($ emptyString ));
242+ $ this ->assertFalse ($ emptyString ->equals ($ null ));
243+ $ this ->assertFalse ($ null ->equals ($ false ));
224244 }
225245}
You can’t perform that action at this time.
0 commit comments