public void TestSaveLateBoundTable() { // test saving and reloading var expected = new TestLateBoundTable { Id = 1, Data = Guid.NewGuid().ToString() }; _databaseInstance.RegisterTableDefinition( _databaseInstance.CreateTableDefinition <TestLateBoundTable, int>(t => t.Id)); _databaseInstance.SaveAsync(expected).Wait(); var actual = _databaseInstance.LoadAsync <TestLateBoundTable>(expected.Id).Result; Assert.NotNull(actual); //Load failed."); Assert.Equal(expected.Id, actual.Id); //Load failed: key mismatch."); Assert.Equal(expected.Data, actual.Data); //Load failed: data mismatch."); _databaseInstance.FlushAsync().Wait(); _engine.Dispose(); var driver = _databaseInstance.Driver; _databaseInstance = null; // bring it back up _engine = Factory.NewEngine(); _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, driver); // do this in a different order _databaseInstance.RegisterTableDefinition( _databaseInstance.CreateTableDefinition <TestSecondLateBoundTable, int>(t => t.Id)); _databaseInstance.RegisterTableDefinition( _databaseInstance.CreateTableDefinition <TestLateBoundTable, int>(t => t.Id)); actual = _databaseInstance.LoadAsync <TestLateBoundTable>(expected.Id).Result; Assert.NotNull(actual); //Load failed after restart."); Assert.Equal(expected.Id, actual.Id); //Load failed: key mismatch after restart."); Assert.Equal(expected.Data, actual.Data); //Load failed: data mismatch after restart."); }
public void TestSaveLateBoundTable() { // test saving and reloading var expected = new TestLateBoundTable {Id = 1, Data = Guid.NewGuid().ToString()}; _databaseInstance.RegisterTableDefinition(_databaseInstance.CreateTableDefinition<TestLateBoundTable,int>(t=>t.Id)); _databaseInstance.SaveAsync( expected ).Wait(); var actual = _databaseInstance.LoadAsync<TestLateBoundTable>( expected.Id ).Result; Assert.IsNotNull(actual, "Load failed."); Assert.AreEqual(expected.Id, actual.Id, "Load failed: key mismatch."); Assert.AreEqual(expected.Data, actual.Data, "Load failed: data mismatch."); _databaseInstance.FlushAsync().Wait(); _engine.Dispose(); var driver = _databaseInstance.Driver; _databaseInstance = null; // bring it back up _engine = Factory.NewEngine(); _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase<TestDatabaseInstance>(TestContext.TestName, driver); // do this in a different order _databaseInstance.RegisterTableDefinition(_databaseInstance.CreateTableDefinition<TestSecondLateBoundTable,int>(t=>t.Id)); _databaseInstance.RegisterTableDefinition(_databaseInstance.CreateTableDefinition<TestLateBoundTable, int>(t => t.Id)); actual = _databaseInstance.LoadAsync<TestLateBoundTable>( expected.Id ).Result; Assert.IsNotNull(actual, "Load failed after restart."); Assert.AreEqual(expected.Id, actual.Id, "Load failed: key mismatch after restart."); Assert.AreEqual(expected.Data, actual.Data, "Load failed: data mismatch after restart."); }