public void TestAddBill() { _database.PurgeAsync().Wait(); var bill = new Bill { Id = Guid.NewGuid(), Name = "Test" }; _database.SaveAsync( bill ).Wait(); var person1 = new Person { Id = Guid.NewGuid(), Name = "Martin" }; _database.SaveAsync( person1 ).Wait(); var partaker1 = new Partaker { Id = Guid.NewGuid(), Paid = 42, Person = person1 }; bill.Partakers.Add(partaker1); _database.SaveAsync( bill ).Wait(); var person2 = new Person { Id = Guid.NewGuid(), Name = "Jeremy" }; _database.SaveAsync( person2 ).Wait(); var partaker2 = new Partaker { Id = Guid.NewGuid(), Paid = 0, Person = person2 }; bill.Partakers.Add(partaker2); _database.SaveAsync( bill ).Wait(); var partaker3 = new Partaker() { Id = Guid.NewGuid(), Paid = 1, Person = person1 }; bill.Partakers.Add(partaker3); _database.SaveAsync( bill ).Wait(); _database.FlushAsync().Wait(); var billKeys = _database.Query<Bill, Guid>(); Assert.IsTrue(billKeys.Count == 1); Assert.AreEqual(billKeys[0].Key, bill.Id); var freshBill = billKeys[0].LazyValue.Value; Assert.IsTrue(freshBill.Partakers.Count == 3, "Bill should have exactly 3 partakers."); var personKeys = _database.Query<Person, Guid>(); Assert.IsTrue(personKeys.Count == 2, "Failed to save exactly 2 persons."); // Compare loaded instances and verify they are equal var persons = (from p in freshBill.Partakers where p.Person.Id.Equals(person1.Id) select p.Person).ToList(); // should be two of these Assert.AreEqual(2, persons.Count, "Failed to grab two instances of the same person."); Assert.AreEqual(persons[0], persons[1], "Instances were not equal."); }
public void TestAddBill() { _database.PurgeAsync().Wait(); var bill = new Bill { Id = Guid.NewGuid(), Name = "Test" }; _database.SaveAsync(bill).Wait(); var person1 = new Person { Id = Guid.NewGuid(), Name = "Martin" }; _database.SaveAsync(person1).Wait(); var partaker1 = new Partaker { Id = Guid.NewGuid(), Paid = 42, Person = person1 }; bill.Partakers.Add(partaker1); _database.SaveAsync(bill).Wait(); var person2 = new Person { Id = Guid.NewGuid(), Name = "Jeremy" }; _database.SaveAsync(person2).Wait(); var partaker2 = new Partaker { Id = Guid.NewGuid(), Paid = 0, Person = person2 }; bill.Partakers.Add(partaker2); _database.SaveAsync(bill).Wait(); var partaker3 = new Partaker() { Id = Guid.NewGuid(), Paid = 1, Person = person1 }; bill.Partakers.Add(partaker3); _database.SaveAsync(bill).Wait(); _database.FlushAsync().Wait(); var billKeys = _database.Query <Bill, Guid>(); Assert.IsTrue(billKeys.Count == 1); Assert.AreEqual(billKeys[0].Key, bill.Id); var freshBill = billKeys[0].LazyValue.Value; Assert.IsTrue(freshBill.Partakers.Count == 3, "Bill should have exactly 3 partakers."); var personKeys = _database.Query <Person, Guid>(); Assert.IsTrue(personKeys.Count == 2, "Failed to save exactly 2 persons."); // Compare loaded instances and verify they are equal var persons = (from p in freshBill.Partakers where p.Person.Id.Equals(person1.Id) select p.Person).ToList(); // should be two of these Assert.AreEqual(2, persons.Count, "Failed to grab two instances of the same person."); Assert.AreEqual(persons[0], persons[1], "Instances were not equal."); }