public void InsertRelations() { var emp_no = 999799; var employee = helpers.GetEmployee(emp_no); foreach (var salary in employee.salaries) { fixture.employeesDb.Delete(salary); } using (var transaction = fixture.employeesDb.Transaction()) { Assert.Empty(employee.salaries); var newSalary = new salaries { emp_no = employee.emp_no.Value, salary = 50000, from_date = helpers.RandomDate(DateTime.Now.AddYears(-60), DateTime.Now.AddYears(-20)), to_date = helpers.RandomDate(DateTime.Now.AddYears(-60), DateTime.Now.AddYears(-20)) }; Assert.Empty(employee.salaries); transaction.Insert(newSalary); Assert.Empty(employee.salaries); transaction.Commit(); } Assert.Single(employee.salaries); fixture.employeesDb.Delete(employee.salaries.First()); Assert.Empty(employee.salaries); }
public void InsertRelationsReadAfterTransaction() { var emp_no = 999797; var employee = helpers.GetEmployee(emp_no); foreach (var s in employee.salaries) { fixture.employeesDb.Delete(s); } salaries salary = null; employees employeeDb = null; var table = fixture.employeesDb.Provider.Metadata .Tables.Single(x => x.DbName == "salaries"); var cache = fixture.employeesDb.Provider.State.Cache.TableCaches.Single(x => x.Table == table); using var transaction = fixture.employeesDb.Transaction(); Assert.False(cache.IsTransactionInCache(transaction)); Assert.Empty(cache.GetTransactionRows(transaction)); employeeDb = transaction.Query().employees.Single(x => x.emp_no == emp_no); Assert.Empty(employeeDb.salaries); var newSalary = new salaries { emp_no = employeeDb.emp_no.Value, salary = 50000, from_date = helpers.RandomDate(DateTime.Now.AddYears(-60), DateTime.Now.AddYears(-20)), to_date = helpers.RandomDate(DateTime.Now.AddYears(-60), DateTime.Now.AddYears(-20)) }; //Assert.Empty(employeeDb.salaries); salary = transaction.Insert(newSalary); Assert.True(cache.IsTransactionInCache(transaction)); Assert.Single(cache.GetTransactionRows(transaction)); //Assert.Single(employeeDb.salaries); transaction.Commit(); Assert.Equal(DatabaseTransactionStatus.Committed, transaction.Status); Assert.False(cache.IsTransactionInCache(transaction)); Assert.Empty(cache.GetTransactionRows(transaction)); Assert.Equal(salary, salary.employees.salaries.First()); Assert.Equal(salary, employeeDb.salaries.First().employees.salaries.First()); Assert.Equal(employeeDb, employeeDb.salaries.First().employees); Assert.Equal(employeeDb, salary.employees.salaries.First().employees); Assert.False(cache.IsTransactionInCache(transaction)); Assert.Empty(cache.GetTransactionRows(transaction)); Assert.Single(employee.salaries); fixture.employeesDb.Delete(employee.salaries.First()); Assert.Empty(employee.salaries); }