@@ -579,4 +579,124 @@ public void jsonarrtrimException() {
579579 assertTrue (e .getMessage ().contains ("WRONGTYPE" ));
580580 }
581581 }
582+
583+ @ Test
584+ public void jsonMergeCreatePathTest () {
585+ String ret = tairDoc .jsonset (jsonKey , "." , "{\" a\" :2}" );
586+ assertEquals ("OK" , ret );
587+
588+ ret = tairDoc .jsonMerge (jsonKey , ".b" , "8" );
589+ assertEquals ("OK" , ret );
590+
591+ ret = tairDoc .jsonget (jsonKey , "." );
592+ assertEquals ("{\" a\" :2,\" b\" :8}" , ret );
593+ }
594+
595+ @ Test
596+ public void jsonMergeReplaceValueTest () {
597+ String ret = tairDoc .jsonset (jsonKey , "." , "{\" a\" :2}" );
598+ assertEquals ("OK" , ret );
599+
600+ ret = tairDoc .jsonMerge (jsonKey , ".a" , "3" );
601+ assertEquals ("OK" , ret );
602+
603+ ret = tairDoc .jsonget (jsonKey , "." );
604+ assertEquals ("{\" a\" :3}" , ret );
605+ }
606+
607+ @ Test
608+ public void jsonMergeDeleteValueTest () {
609+ String ret = tairDoc .jsonset (jsonKey , "." , "{\" a\" :2}" );
610+ assertEquals ("OK" , ret );
611+
612+ ret = tairDoc .jsonMerge (jsonKey , "." , "{\" a\" :null}" );
613+ assertEquals ("OK" , ret );
614+
615+ ret = tairDoc .jsonget (jsonKey , "." );
616+ assertEquals ("{}" , ret );
617+ }
618+
619+ @ Test
620+ public void jsonMergeReplaceArrayTest () {
621+ String ret = tairDoc .jsonset (jsonKey , "." , "{\" a\" :[2,4,6,8]}" );
622+ assertEquals ("OK" , ret );
623+
624+ ret = tairDoc .jsonMerge (jsonKey , ".a" , "[10,12]" );
625+ assertEquals ("OK" , ret );
626+
627+ ret = tairDoc .jsonget (jsonKey , "." );
628+ assertEquals ("{\" a\" :[10,12]}" , ret );
629+ }
630+
631+ @ Test
632+ public void jsonMergeMultiPathsTest () {
633+ String ret = tairDoc .jsonset (jsonKey , "." , "{\" f1\" :{\" a\" :1},\" f2\" :{\" a\" :2}}" );
634+ assertEquals ("OK" , ret );
635+
636+ ret = tairDoc .jsonMerge (jsonKey , "." , "{\" f1\" :null,\" f2\" :{\" a\" :3,\" b\" :4},\" f3\" :[2,4,6]}" );
637+ assertEquals ("OK" , ret );
638+
639+ ret = tairDoc .jsonget (jsonKey , "." );
640+ assertEquals ("{\" f2\" :{\" a\" :3,\" b\" :4},\" f3\" :[2,4,6]}" , ret );
641+ }
642+
643+ @ Test
644+ public void jsonMergeCreatePathTestBinary () {
645+ String ret = tairDoc .jsonset (jsonKey .getBytes (), "." .getBytes (), "{\" a\" :2}" .getBytes ());
646+ assertEquals ("OK" , ret );
647+
648+ ret = tairDoc .jsonMerge (jsonKey .getBytes (), ".b" .getBytes (), "8" .getBytes ());
649+ assertEquals ("OK" , ret );
650+
651+ byte [] bret = tairDoc .jsonget (jsonKey .getBytes (), "." .getBytes ());
652+ assertEquals ("{\" a\" :2,\" b\" :8}" , new String (bret ));
653+ }
654+
655+ @ Test
656+ public void jsonMergeReplaceValueTestBinary () {
657+ String ret = tairDoc .jsonset (jsonKey .getBytes (), "." .getBytes (), "{\" a\" :2}" .getBytes ());
658+ assertEquals ("OK" , ret );
659+
660+ ret = tairDoc .jsonMerge (jsonKey .getBytes (), ".a" .getBytes (), "3" .getBytes ());
661+ assertEquals ("OK" , ret );
662+
663+ byte [] bret = tairDoc .jsonget (jsonKey .getBytes (), "." .getBytes ());
664+ assertEquals ("{\" a\" :3}" , new String (bret ));
665+ }
666+
667+ @ Test
668+ public void jsonMergeDeleteValueTestBinary () {
669+ String ret = tairDoc .jsonset (jsonKey .getBytes (), "." .getBytes (), "{\" a\" :2}" .getBytes ());
670+ assertEquals ("OK" , ret );
671+
672+ ret = tairDoc .jsonMerge (jsonKey .getBytes (), "." .getBytes (), "{\" a\" :null}" .getBytes ());
673+ assertEquals ("OK" , ret );
674+
675+ byte [] bret = tairDoc .jsonget (jsonKey .getBytes (), "." .getBytes ());
676+ assertEquals ("{}" , new String (bret ));
677+ }
678+
679+ @ Test
680+ public void jsonMergeReplaceArrayTestBinary () {
681+ String ret = tairDoc .jsonset (jsonKey .getBytes (), "." .getBytes (), "{\" a\" :[2,4,6,8]}" .getBytes ());
682+ assertEquals ("OK" , ret );
683+
684+ ret = tairDoc .jsonMerge (jsonKey .getBytes (), ".a" .getBytes (), "[10,12]" .getBytes ());
685+ assertEquals ("OK" , ret );
686+
687+ byte [] bret = tairDoc .jsonget (jsonKey .getBytes (), "." .getBytes ());
688+ assertEquals ("{\" a\" :[10,12]}" , new String (bret ));
689+ }
690+
691+ @ Test
692+ public void jsonMergeMultiPathsTestBinary () {
693+ String ret = tairDoc .jsonset (jsonKey .getBytes (), "." .getBytes (), "{\" f1\" :{\" a\" :1},\" f2\" :{\" a\" :2}}" .getBytes ());
694+ assertEquals ("OK" , ret );
695+
696+ ret = tairDoc .jsonMerge (jsonKey .getBytes (), "." .getBytes (), "{\" f1\" :null,\" f2\" :{\" a\" :3,\" b\" :4},\" f3\" :[2,4,6]}" .getBytes ());
697+ assertEquals ("OK" , ret );
698+
699+ byte [] bret = tairDoc .jsonget (jsonKey .getBytes (), "." .getBytes ());
700+ assertEquals ("{\" f2\" :{\" a\" :3,\" b\" :4},\" f3\" :[2,4,6]}" , new String (bret ));
701+ }
582702}
0 commit comments