protected void InitStorage() { var database = new SimpleDatabase("MYRM_" + _name, true); //TODO: BUGBUG: add validation to check the data and key length database.CreateTable(Constants.ReservationTableName, 96, 36); database.CreateTable(Constants.ResourcesTableName, 96, 36); _transactionStorage = new TransactionStorage(database); }
public void DeleteTest1() { Transaction context = new Transaction(); RID rid = new RID(RID.Type.FLIGHT, "test"); Customer c = new Customer(); HashSet<RID> reservations = new HashSet<RID> {rid}; var db = CreateDatabase(); TransactionStorage tr = new TransactionStorage(db); tr.Write(context, c, reservations); tr.Delete(context, c); List<Customer> cs = new List<Customer>(tr.GetCustomers(context)); Assert.AreEqual(0, cs.Count); }
public void AbortTest() { Transaction context = new Transaction(); RID rid = new RID(RID.Type.FLIGHT, "test"); var db = CreateDatabase(); TransactionStorage tr = new TransactionStorage(db); tr.Write(context, rid, new Resource(rid, 10, 11)); //Resource res = tr.Read(context, rid); //Assert.AreEqual(11, res.getPrice()); tr.Abort(context); var res = tr.Read(context, rid); Assert.IsNull(res, "Transaction aborted, but record still there"); }
public void CommitTest() { Transaction context = new Transaction(); Transaction context1 = new Transaction(); RID rid = new RID(RID.Type.FLIGHT, Guid.NewGuid().ToString().Substring(0, 24)); var db = CreateDatabase(); TransactionStorage tr = new TransactionStorage(db); tr.Write(context, rid, new Resource(rid, 10, 11)); Resource res = tr.Read(context1, rid); Assert.IsNull(res); tr.Prepare(context); tr.Commit(context); res = tr.Read(context, rid); Assert.AreEqual(11, res.getPrice()); }
public void ReadWriteTest() { Transaction context = new Transaction(); RID rid = new RID(RID.Type.FLIGHT, "test"); Customer c = new Customer(); HashSet<RID> reservations = new HashSet<RID> {rid}; var db = CreateDatabase(); TransactionStorage tr = new TransactionStorage(db); tr.Write(context, c, reservations); HashSet<RID> actual = tr.Read(context, c); Assert.IsTrue(reservations.SetEquals(actual)); }
public void WriteDeleteBeforeCommit() { Transaction context = new Transaction(); RID rid = new RID(RID.Type.FLIGHT, "test"); var db = CreateDatabase(); TransactionStorage tr = new TransactionStorage(db); tr.Write(context, rid, new Resource(rid, 10, 11)); tr.Delete(context, rid); Resource res = tr.Read(context, rid); Assert.IsNull(res); }
public void SetResourcesTest() { var db = CreateDatabase(); var target = new TransactionStorage(db); var resources = new Dictionary<RID, Resource>(); var rid1 = new RID(TP.RID.Type.ROOM, "Motel6"); resources.Add(rid1, new Resource(rid1, 1000, 20)); var rid2 = new RID(TP.RID.Type.FLIGHT, "53"); resources.Add(rid2, new Resource(rid2, 260, 550)); // TODO: need to fix this because the class signiture changed //target.SetResources(resources); //var result = target.GetResources(); //Assert.IsTrue(result.ContainsKey(rid1)); //Assert.IsTrue(result.ContainsKey(rid2)); //Assert.AreEqual(260, result[rid2].getCount()); //Assert.AreEqual(550, result[rid2].getPrice()); //Assert.AreEqual("53", result[rid2].getName()); }
public void SetReservationsTest() { var customer = new Customer {Id = Guid.NewGuid()}; var db = CreateDatabase(); var target = new TransactionStorage(db); var reservations = new Dictionary<Customer, HashSet<RID>> { { customer, new HashSet<RID> { new RID(53), new RID(TP.RID.Type.ROOM, "Room") } } }; // TODO: need to fix this because the class signiture changed //target.SetReservations(reservations); //var result = target.GetReservations(); //Assert.IsTrue(result.ContainsKey(customer)); //Assert.AreEqual(2, result[customer].Count); //Assert.IsTrue(result[customer].Contains(new RID(53))); //Assert.IsTrue(result[customer].Contains(new RID(TP.RID.Type.ROOM, "Room"))); }