1- <?php
1+ <?php /** @noinspection PhpUndefinedFieldInspection */
22namespace Gt \Dom \Test ;
33
44use Gt \Dom \DOMStringMap ;
@@ -19,7 +19,7 @@ public function testGetterSetter():void {
1919 self ::assertSame ($ keyValuePairs ["example " ], $ sut ->example );
2020 }
2121
22- public function testGetterCamelCaseConversion ():void {
22+ public function testGetter_fromCamelCase ():void {
2323 $ keyValuePairs = [
2424 "this-is-camel-case " => uniqid ("example- " ),
2525 ];
@@ -34,6 +34,44 @@ public function testGetterCamelCaseConversion():void {
3434 self ::assertSame ($ keyValuePairs ["this-is-camel-case " ], $ sut ->thisIsCamelCase );
3535 }
3636
37+ public function testGetter_fromHyphenated ():void {
38+ $ keyValuePairs = [
39+ "this-is-camel-case " => uniqid ("example- " ),
40+ ];
41+ $ getter = function () use (&$ keyValuePairs ) {
42+ return $ keyValuePairs ;
43+ };
44+ $ setter = function (array $ kvp ) use (&$ keyValuePairs ) {
45+ $ keyValuePairs = $ kvp ;
46+ };
47+ $ sut = new DOMStringMap ($ getter , $ setter );
48+
49+ self ::assertSame ($ keyValuePairs ["this-is-camel-case " ], $ sut ->get ("this-is-camel-case " ));
50+ self ::assertSame ($ keyValuePairs ["this-is-camel-case " ], $ sut ->get ("thisIsCamelCase " ));
51+ self ::assertArrayNotHasKey ("thisIsCamelCase " , $ keyValuePairs );
52+ }
53+
54+ public function testSetter_fromHyphenated ():void {
55+ $ keyValuePairs = [
56+ "this-is-camel-case " => uniqid ("example- " ),
57+ ];
58+ $ getter = function () use (&$ keyValuePairs ) {
59+ return $ keyValuePairs ;
60+ };
61+ $ setter = function (array $ kvp ) use (&$ keyValuePairs ) {
62+ $ keyValuePairs = $ kvp ;
63+ };
64+ $ sut = new DOMStringMap ($ getter , $ setter );
65+
66+ $ sut ->set ("this-is-camel-case " , "update1 " );
67+ $ sut ->set ("thisIsCamelCase " , "update2 " );
68+ $ sut ->set ("other-key " , "other-update " );
69+
70+ self ::assertCount (2 , $ keyValuePairs );
71+ self ::assertSame ("update2 " , $ sut ->thisIsCamelCase );
72+ self ::assertSame ("other-update " , $ sut ->otherKey );
73+ }
74+
3775 public function testSetterCamelCaseConversion ():void {
3876 $ keyValuePairs = [];
3977 $ getter = function () use (&$ keyValuePairs ) {
@@ -47,4 +85,22 @@ public function testSetterCamelCaseConversion():void {
4785 self ::assertSame ("example123 " , $ sut ->get ("thisIsCamelCase " ));
4886 self ::assertSame ("example123 " , $ sut ->get ("this-is-camel-case " ));
4987 }
88+
89+ public function testSetter_withNumbers ():void {
90+ $ keyValuePairs = [];
91+ $ getter = function () use (&$ keyValuePairs ) {
92+ return $ keyValuePairs ;
93+ };
94+ $ setter = function (array $ kvp ) use (&$ keyValuePairs ) {
95+ $ keyValuePairs = $ kvp ;
96+ };
97+ $ sut = new DOMStringMap ($ getter , $ setter );
98+ $ sut ->example1 = "one " ;
99+ $ sut ->example2 = "two " ;
100+ $ sut ->example3 = "three " ;
101+
102+ self ::assertSame ("one " , $ sut ->example1 );
103+ self ::assertSame ("two " , $ sut ->example2 );
104+ self ::assertSame ("three " , $ sut ->example3 );
105+ }
50106}
0 commit comments