22
33import static org .junit .Assert .assertEquals ;
44import static org .junit .Assert .assertNotEquals ;
5- import static org .junit .Assert .assertNotNull ;
65import static org .junit .Assert .assertNull ;
76import static org .junit .Assert .assertThrows ;
87import static org .junit .Assert .assertTrue ;
@@ -523,11 +522,9 @@ public void updateListener2Test() {
523522 .put ("nullAfter" , null )
524523 .put ("stringKey" , "hello world!" )
525524 .put ("escapeStringKey" , "h\b e\t llo w\u1234 orld!" )
526- .put ("intKey" , Long . valueOf ( 42 ) );
525+ .put ("intKey" , 42 );
527526 //.put("doubleKey", Double.valueOf(-23.45e67)); PROBLEM WITH DOUBLE CONVERTING TO BIGDECIMAL AFTER JSONOBJECT.TOSTRING
528527
529- final JSONObject jsonObject3 = new JSONObject (jsonObject2 .toString ());
530-
531528 final JSONObject oldJsonObject2 = new JSONObject (jsonObject2 .toString ());
532529
533530 jsonObject1 .addUpdateListenerGlobal (evt -> {
@@ -540,34 +537,81 @@ public void updateListener2Test() {
540537 });
541538
542539 jsonObject1 .addUpdateListener ("trueKey" , evt -> {
543- assertNull ( evt .getOldValue ());
544- assertTrue ( "expected \" trueKey \" :true" , Boolean . TRUE . equals ( evt .getNewValue () ));
540+ assertEquals ( Boolean . valueOf ( true ), evt .getOldValue ());
541+ assertNull ( evt .getNewValue ());
545542 });
546543 jsonObject1 .addUpdateListener ("falseKey" , evt -> {
547- assertNull ( evt .getOldValue ());
548- assertTrue ( "expected \" falseKey \" :false" , Boolean . FALSE . equals ( evt .getNewValue () ));
544+ assertEquals ( Boolean . valueOf ( false ), evt .getOldValue ());
545+ assertNull ( evt .getNewValue ());
549546 });
550547 jsonObject1 .addUpdateListener ("stringKey" , evt -> {
551- assertNotNull ( evt .getOldValue ());
552- assertTrue ( "expected \" stringKey \" : \" hello world!\" " , "hello world!" . equals ( evt .getNewValue () ));
548+ assertEquals ( "CHANGE ME!!!" , evt .getOldValue ());
549+ assertEquals ( " hello world!" , evt .getNewValue ());
553550 });
554551 jsonObject1 .addUpdateListener ("nullKey" , evt -> {
555- fail ("They are the same" );
552+ assertNull (evt .getOldValue ());
553+ assertNull (null , evt .getNewValue ());
554+ });
555+ jsonObject1 .addUpdateListener ("nullBefore" , evt -> {
556+ assertNull (evt .getOldValue ());
557+ assertEquals ("null" , evt .getNewValue ());
558+ });
559+ jsonObject1 .addUpdateListener ("nullAfter" , evt -> {
560+ assertEquals ("null" , evt .getOldValue ());
561+ assertEquals (null , evt .getNewValue ());
556562 });
557563 jsonObject1 .addUpdateListener ("escapeStringKey" , evt -> {
558- assertNotNull (evt .getOldValue ());
559- assertTrue ( "expected \" escapeStringKey \" : \" h\b e\t llo w\u1234 orld!\" " , "h \b e \t llo w \u1234 orld!" . equals ( evt .getNewValue () ));
564+ assertNull (evt .getOldValue ());
565+ assertEquals ( " h\b e\t llo w\u1234 orld!" , evt .getNewValue ());
560566 });
561567 jsonObject1 .addUpdateListener ("intKey" , evt -> {
562- assertNotNull (evt .getOldValue ());
563- assertTrue ( "expected \" intKey \" :42" , Long . valueOf ( "42" ). equals ( evt .getNewValue () ));
568+ assertNull (evt .getOldValue ());
569+ assertEquals ( 42 , evt .getNewValue ());
564570 });
565571
566572 assertEquals (jsonObject1 .toString (), oldJsonObject1 .toString ());
567- assertEquals (jsonObject2 .toString (), oldJsonObject2 .toString ());
568573
569574 jsonObject1 .update (jsonObject2 );
570- jsonObject3 .updateOrRemove (jsonObject2 );
575+
576+ assertNotEquals (jsonObject1 .toString (), oldJsonObject1 .toString ());
577+ assertEquals (jsonObject2 .toString (), oldJsonObject2 .toString ());
578+
579+ oldJsonObject1 .addUpdateListener ("trueKey" , evt -> {
580+ assertEquals (Boolean .valueOf (true ), evt .getOldValue ());
581+ assertNull (evt .getNewValue ());
582+ });
583+ oldJsonObject1 .addUpdateListener ("falseKey" , evt -> {
584+ assertEquals (Boolean .valueOf (false ), evt .getOldValue ());
585+ assertNull (evt .getNewValue ());
586+ });
587+ oldJsonObject1 .addUpdateListener ("stringKey" , evt -> {
588+ assertEquals ("CHANGE ME!!!" , evt .getOldValue ());
589+ assertEquals ("hello world!" , evt .getNewValue ());
590+ });
591+ oldJsonObject1 .addUpdateListener ("nullKey" , evt -> {
592+ assertNull (evt .getOldValue ());
593+ assertNull (null , evt .getNewValue ());
594+ });
595+ oldJsonObject1 .addUpdateListener ("nullBefore" , evt -> {
596+ assertNull (evt .getOldValue ());
597+ assertEquals ("null" , evt .getNewValue ());
598+ });
599+ oldJsonObject1 .addUpdateListener ("nullAfter" , evt -> {
600+ assertEquals ("null" , evt .getOldValue ());
601+ assertEquals (null , evt .getNewValue ());
602+ });
603+ oldJsonObject1 .addUpdateListener ("escapeStringKey" , evt -> {
604+ assertNull (evt .getOldValue ());
605+ assertEquals ("h\b e\t llo w\u1234 orld!" , evt .getNewValue ());
606+ });
607+ oldJsonObject1 .addUpdateListener ("intKey" , evt -> {
608+ assertNull (evt .getOldValue ());
609+ assertEquals (42 , evt .getNewValue ());
610+ });
611+
612+ assertEquals (jsonObject2 .toString (), oldJsonObject2 .toString ());
613+
614+ oldJsonObject1 .updateOrRemove (oldJsonObject2 );
571615
572616 assertNotEquals (jsonObject1 .toString (), oldJsonObject1 .toString ());
573617 assertEquals (jsonObject2 .toString (), oldJsonObject2 .toString ());
@@ -626,7 +670,7 @@ public void updateOrRemoveDstEmptyTest() {
626670 }
627671
628672 @ Test
629- public void updateOrRemoveAlltEmptyTest () {
673+ public void updateOrRemoveAllEmptyTest () {
630674 try {
631675 final JSONObject jsonObject1 = new JSONObject ();
632676 final JSONObject jsonObject2 = new JSONObject ();
@@ -646,4 +690,64 @@ public void updateOrRemoveAlltEmptyTest() {
646690 fail (ex .getMessage ());
647691 }
648692 }
693+
694+ @ Test
695+ public void updateOrRemoveSrcTest () {
696+ try {
697+ final JSONObject jsonObject1 = new JSONObject ()
698+ .put ("stringKey" , "hello world!" );
699+ final JSONObject jsonObject2 = new JSONObject ();
700+
701+ jsonObject1 .addUpdateListenerGlobal (evt -> {
702+ final Object oldValue = evt .getOldValue ();
703+ final Object newValue = evt .getNewValue ();
704+
705+ assertEquals ("hello world!" , oldValue );
706+ assertNull (newValue );
707+ });
708+
709+ jsonObject1 .addUpdateListener ("stringKey" , evt -> {
710+ final Object oldValue = evt .getOldValue ();
711+ final Object newValue = evt .getNewValue ();
712+
713+ assertEquals ("hello world!" , oldValue );
714+ assertNull (newValue );
715+ });
716+
717+ jsonObject1 .updateOrRemove (jsonObject2 );
718+ } catch (Exception ex ) {
719+ ex .printStackTrace ();
720+ fail (ex .getMessage ());
721+ }
722+ }
723+
724+ @ Test
725+ public void updateOrRemoveDstTest () {
726+ try {
727+ final JSONObject jsonObject1 = new JSONObject ();
728+ final JSONObject jsonObject2 = new JSONObject ()
729+ .put ("stringKey" , "hello world!" );
730+
731+ jsonObject1 .addUpdateListenerGlobal (evt -> {
732+ final Object oldValue = evt .getOldValue ();
733+ final Object newValue = evt .getNewValue ();
734+
735+ assertNull (oldValue );
736+ assertEquals ("hello world!" , newValue );
737+ });
738+
739+ jsonObject1 .addUpdateListener ("stringKey" , evt -> {
740+ final Object oldValue = evt .getOldValue ();
741+ final Object newValue = evt .getNewValue ();
742+
743+ assertNull (oldValue );
744+ assertEquals ("hello world!" , newValue );
745+ });
746+
747+ jsonObject1 .updateOrRemove (jsonObject2 );
748+ } catch (Exception ex ) {
749+ ex .printStackTrace ();
750+ fail (ex .getMessage ());
751+ }
752+ }
649753}
0 commit comments