Skip to content

Commit 5a61b70

Browse files
committed
Add failing UpsertBy tests
1 parent 9ffd32a commit 5a61b70

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

Simple.Data.SqlTest/UpsertTests.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)