public void ChildListTest() { Expect.IsTrue(_testDatabases.Count > 0); string methodName = MethodBase.GetCurrentMethod().Name; _testDatabases.Each(db => { OutLineFormat("{0}.{1}: {2}", ConsoleColor.DarkYellow, this.GetType().Name, methodName, db.GetType().Name); TestTable parent = new TestTable(db); parent.Name = "Parent Test"; parent.Save(db); TestFkTable child = parent.TestFkTablesByTestTableId.AddNew(); child.Name = "Child ({0})"._Format(6.RandomLetters()); parent.Save(db); TestTable retrieved = TestTable.OneWhere(c => c.Id == parent.Id, db); Expect.AreEqual(1, retrieved.TestFkTablesByTestTableId.Count); Expect.AreEqual(child.Name, retrieved.TestFkTablesByTestTableId[0].Name); TestFkTable child2 = new TestFkTable(); child2.Name = "Child 2 ({0})"._Format(6.RandomLetters()); parent.TestFkTablesByTestTableId.Add(child2); parent.Save(db); retrieved = TestTable.OneWhere(c => c.Id == parent.Id, db); Expect.AreEqual(2, retrieved.TestFkTablesByTestTableId.Count); List <string> names = retrieved.TestFkTablesByTestTableId.Select(c => c.Name).ToList(); Expect.IsTrue(names.Contains(child.Name)); Expect.IsTrue(names.Contains(child2.Name)); }); }
public void ChildCollectionsFunctionCorrectly() { SQLiteDatabase db = new SQLiteDatabase(nameof(XrefListTest)); db.TryEnsureSchema <TestTable>(); TestTable.LoadAll(db).Delete(); TestFkTable.LoadAll(db).Delete(); TestTable testTable = new TestTable { Name = "TestTable_".RandomLetters(4) }; TestFkTable fkTable = new TestFkTable { Name = "TestFkTable_".RandomLetters(6) }; testTable.Save(db); testTable.TestFkTablesByTestTableId.Add(fkTable); fkTable.Id.ShouldBeNull(); testTable.Save(db); fkTable.Id.ShouldNotBeNull(); TestTable retrieved = TestTable.GetById(testTable.Id, db); Expect.AreEqual(1, retrieved.TestFkTablesByTestTableId.Count); Expect.AreEqual(fkTable.ToJsonSafe().ToJson(), retrieved.TestFkTablesByTestTableId[0].ToJsonSafe().ToJson()); }