@@ -99,6 +99,48 @@ public function testFieldOptionsExport(): void
9999 </field>
100100 </entity>
101101</doctrine-mapping>
102+ XML;
103+
104+ self ::assertXmlStringEqualsXmlString ($ expectedFileContent , $ exporter ->exportClassMetadata ($ metadata ));
105+ }
106+
107+ public function testPolicyExport (): void
108+ {
109+ $ exporter = new XmlExporter ();
110+ $ metadata = new ClassMetadata ('entityTest ' );
111+
112+ // DEFERRED_IMPLICIT
113+ $ metadata ->setChangeTrackingPolicy (ClassMetadata::CHANGETRACKING_DEFERRED_IMPLICIT );
114+
115+ $ expectedFileContent = <<<'XML'
116+ <?xml version="1.0" encoding="utf-8"?>
117+ <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
118+ <entity name="entityTest"/>
119+ </doctrine-mapping>
120+ XML;
121+
122+ self ::assertXmlStringEqualsXmlString ($ expectedFileContent , $ exporter ->exportClassMetadata ($ metadata ));
123+
124+ // DEFERRED_EXPLICIT
125+ $ metadata ->setChangeTrackingPolicy (ClassMetadata::CHANGETRACKING_DEFERRED_EXPLICIT );
126+
127+ $ expectedFileContent = <<<'XML'
128+ <?xml version="1.0" encoding="utf-8"?>
129+ <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
130+ <entity name="entityTest" change-tracking-policy="DEFERRED_EXPLICIT"/>
131+ </doctrine-mapping>
132+ XML;
133+
134+ self ::assertXmlStringEqualsXmlString ($ expectedFileContent , $ exporter ->exportClassMetadata ($ metadata ));
135+
136+ // NOTIFY
137+ $ metadata ->setChangeTrackingPolicy (ClassMetadata::CHANGETRACKING_NOTIFY );
138+
139+ $ expectedFileContent = <<<'XML'
140+ <?xml version="1.0" encoding="utf-8"?>
141+ <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
142+ <entity name="entityTest" change-tracking-policy="NOTIFY"/>
143+ </doctrine-mapping>
102144XML;
103145
104146 self ::assertXmlStringEqualsXmlString ($ expectedFileContent , $ exporter ->exportClassMetadata ($ metadata ));
0 commit comments