@@ -414,5 +414,49 @@ public void TestUpsertWithSingleArgumentAndExistingObject()
414414 Assert . AreEqual ( 1 , actual . Id ) ;
415415 Assert . IsNotNull ( actual . Name ) ;
416416 }
417+
418+ [ Test ]
419+ public void TestUpsertUserBySecondaryField ( )
420+ {
421+ var db = DatabaseHelper . Open ( ) ;
422+
423+ var id = db . Users . UpsertByName ( new User ( ) { Age = 20 , Name = "Black sheep" , Password = "Bah" } ) . Id ;
424+ User actual = db . Users . FindById ( id ) ;
425+
426+ Assert . AreEqual ( id , actual . Id ) ;
427+ Assert . AreEqual ( "Black sheep" , actual . Name ) ;
428+ Assert . AreEqual ( "Bah" , actual . Password ) ;
429+ Assert . AreEqual ( 20 , actual . Age ) ;
430+ }
431+
432+ [ Test ]
433+ public void TestUpsertUserByTwoSecondaryFields ( )
434+ {
435+ var db = DatabaseHelper . Open ( ) ;
436+
437+ var id = db . Users . UpsertByNameAndPassword ( new User ( ) { Age = 20 , Name = "Black sheep" , Password = "Bah" } ) . Id ;
438+ User actual = db . Users . FindById ( id ) ;
439+
440+ Assert . AreEqual ( id , actual . Id ) ;
441+ Assert . AreEqual ( "Black sheep" , actual . Name ) ;
442+ Assert . AreEqual ( "Bah" , actual . Password ) ;
443+ Assert . AreEqual ( 20 , actual . Age ) ;
444+ }
445+
446+ [ Test ]
447+ public void TestUpsertExisting ( )
448+ {
449+ var db = DatabaseHelper . Open ( ) ;
450+
451+ var id = db . Users . UpsertByNameAndPassword ( new User ( ) { Age = 20 , Name = "Black sheep" , Password = "Bah" } ) . Id ;
452+ db . Users . UpsertById ( new User ( ) { Id = id , Age = 12 , Name = "Dog" , Password = "Bark" } ) ;
453+
454+ User actual = db . Users . FindById ( id ) ;
455+
456+ Assert . AreEqual ( id , actual . Id ) ;
457+ Assert . AreEqual ( "Dog" , actual . Name ) ;
458+ Assert . AreEqual ( "Bark" , actual . Password ) ;
459+ Assert . AreEqual ( 12 , actual . Age ) ;
460+ }
417461 }
418462}
0 commit comments