@@ -608,11 +608,25 @@ func TestQuery_Apply(t *testing.T) {
608
608
err = cli .Find (context .Background (), filter1 ).Apply (change1 , & res1 )
609
609
ast .EqualError (err , mongo .ErrNoDocuments .Error ())
610
610
611
+ change1 .ReturnNew = false
612
+ change1 .Upsert = true
613
+ err = cli .Find (context .Background (), filter1 ).Apply (change1 , & res1 )
614
+ ast .NoError (err )
615
+ ast .Equal ( "" , res1 .Name )
616
+ ast .Equal (0 , res1 .Age )
617
+
618
+ change1 .Update = bson.M {
619
+ operator .Set : bson.M {
620
+ "name" : "Tom" ,
621
+ "age" : 19 ,
622
+ },
623
+ }
624
+ change1 .ReturnNew = true
611
625
change1 .Upsert = true
612
626
err = cli .Find (context .Background (), filter1 ).Apply (change1 , & res1 )
613
627
ast .NoError (err )
614
628
ast .Equal ( "Tom" , res1 .Name )
615
- ast .Equal (18 , res1 .Age )
629
+ ast .Equal (19 , res1 .Age )
616
630
617
631
res2 := QueryTestItem {}
618
632
filter2 := bson.M {
@@ -677,6 +691,10 @@ func TestQuery_Apply(t *testing.T) {
677
691
err = cli .Find (context .Background (), filter4 ).Apply (change4 , & res4 )
678
692
ast .EqualError (err , mongo .ErrNoDocuments .Error ())
679
693
694
+ change4 .ReturnNew = true
695
+ err = cli .Find (context .Background (), filter4 ).Apply (change4 , & res4 )
696
+ ast .EqualError (err , mongo .ErrNoDocuments .Error ())
697
+
680
698
change4 .Upsert = true
681
699
change4 .ReturnNew = true
682
700
err = cli .Find (context .Background (), filter4 ).Apply (change4 , & res4 )
@@ -698,4 +716,20 @@ func TestQuery_Apply(t *testing.T) {
698
716
ast .NoError (err )
699
717
ast .Equal ("Bob" , res4 .Name )
700
718
ast .Equal (23 , res4 .Age )
719
+
720
+
721
+ res4 = QueryTestItem {}
722
+ filter4 = bson.M {
723
+ "name" : "James" ,
724
+ }
725
+ change4 = Change {
726
+ Replace : true ,
727
+ Update : bson.M {"name" : "James" , "age" : 26 },
728
+ Upsert : true ,
729
+ ReturnNew : false ,
730
+ }
731
+ err = cli .Find (context .Background (), filter4 ).Apply (change4 , & res4 )
732
+ ast .NoError (err )
733
+ ast .Equal ("" , res4 .Name )
734
+ ast .Equal (0 , res4 .Age )
701
735
}
0 commit comments