public void testDBObjectIsUpdatedFromDBOnPermissionUpgrade() { using (hostDB db = new hostDB()) { bladeDirectorWCF.vmSpec toDB = new bladeDirectorWCF.vmSpec(db.conn, "1.1.1.2", bladeLockType.lockAll, bladeLockType.lockAll); db.addNode(toDB); using (lockableVMSpec refB = db.getVMByIP("1.1.1.2", bladeLockType.lockNone, bladeLockType.lockNone)) { Thread innerThread = new Thread(() => { using (lockableVMSpec refA = db.getVMByIP("1.1.1.2", bladeLockType.lockNone, bladeLockType.lockVirtualHW | bladeLockType.lockOwnership)) { refA.spec.friendlyName = "test data"; refA.spec.currentOwner = "Dave_Lister"; } }); innerThread.Start(); innerThread.Join(); refB.upgradeLocks(bladeLockType.lockVirtualHW | bladeLockType.lockOwnership, bladeLockType.lockNone); Assert.AreEqual("test data", refB.spec.friendlyName); Assert.AreEqual("Dave_Lister", refB.spec.currentOwner); } } }
public void testDBObjectThrowsAfterUpgradeToWriteAccess() { using (hostDB db = new hostDB()) { bladeDirectorWCF.vmSpec toDB = new bladeDirectorWCF.vmSpec(db.conn, "1.1.1.6", bladeLockType.lockAll, bladeLockType.lockAll); db.addNode(toDB); using (lockableVMSpec refA = db.getVMByIP("1.1.1.6", bladeLockType.lockNone, bladeLockType.lockNone)) { refA.upgradeLocks( bladeLockType.lockVirtualHW | bladeLockType.lockOwnership, bladeLockType.lockVirtualHW | bladeLockType.lockOwnership); Assert.AreEqual(bladeLockType.lockIPAddresses | bladeLockType.lockOwnership | bladeLockType.lockVirtualHW, refA.spec.permittedAccessRead); Assert.AreEqual(bladeLockType.lockOwnership | bladeLockType.lockVirtualHW, refA.spec.permittedAccessWrite); failIfThrow(() => { refA.spec.friendlyName = "test data"; }); failIfThrow(() => { refA.spec.currentOwner = "Dave_Lister"; }); failIfThrow(() => { Debug.WriteLine(refA.spec.friendlyName); }); failIfThrow(() => { Debug.WriteLine(refA.spec.currentOwner); }); } } }