@@ -66,6 +66,56 @@ public function testEnumsAreNames(): void
6666 $ this ->assertSame ('Enum Sentry\Tests\Serializer\SerializerTestEnum::CASE_NAME ' , $ result );
6767 }
6868
69+ /**
70+ * @requires PHP >= 8.1
71+ */
72+ public function testBackedEnumsIncludeValue (): void
73+ {
74+ $ serializer = $ this ->createSerializer ();
75+ $ input = SerializerTestBackedEnum::CASE_NAME ;
76+ $ result = $ this ->invokeSerialization ($ serializer , $ input );
77+
78+ $ this ->assertSame ('Enum Sentry\Tests\Serializer\SerializerTestBackedEnum::CASE_NAME(case_value) ' , $ result );
79+ }
80+
81+ /**
82+ * @requires PHP >= 8.1
83+ *
84+ * @dataProvider serializeAllObjectsDataProvider
85+ */
86+ public function testEnumsAreNotSerializedAsObjects (bool $ serializeAllObjects ): void
87+ {
88+ $ serializer = $ this ->createSerializer ();
89+
90+ if ($ serializeAllObjects ) {
91+ $ serializer ->setSerializeAllObjects (true );
92+ }
93+
94+ $ input = SerializerTestEnum::CASE_NAME ;
95+ $ result = $ this ->invokeSerialization ($ serializer , $ input );
96+
97+ $ this ->assertSame ('Enum Sentry\Tests\Serializer\SerializerTestEnum::CASE_NAME ' , $ result );
98+ }
99+
100+ /**
101+ * @requires PHP >= 8.1
102+ *
103+ * @dataProvider serializeAllObjectsDataProvider
104+ */
105+ public function testBackedEnumsAreNotSerializedAsObjects (bool $ serializeAllObjects ): void
106+ {
107+ $ serializer = $ this ->createSerializer ();
108+
109+ if ($ serializeAllObjects ) {
110+ $ serializer ->setSerializeAllObjects (true );
111+ }
112+
113+ $ input = SerializerTestBackedEnum::CASE_NAME ;
114+ $ result = $ this ->invokeSerialization ($ serializer , $ input );
115+
116+ $ this ->assertSame ('Enum Sentry\Tests\Serializer\SerializerTestBackedEnum::CASE_NAME(case_value) ' , $ result );
117+ }
118+
69119 public static function objectsWithIdPropertyDataProvider (): array
70120 {
71121 return [
0 commit comments