public void TestCreate() { var accessor = new ConcurrentObjectAccessor <TestClass>(); Assert.IsNotNull(accessor); Assert.IsNotNull(accessor.Reference); }
public void TestCreateWithName() { var accessor = new ConcurrentObjectAccessor <TestClass>("Hello"); Assert.IsNotNull(accessor); Assert.IsNotNull(accessor.Reference); Assert.AreEqual("Hello", accessor.Reference.Name); }
public void TestSwapNewAndExecuteFunction() { var accessor = new ConcurrentObjectAccessor <TestClass>("Hello"); Assert.IsNotNull(accessor); Assert.IsNotNull(accessor.Reference); var retVal = accessor.SwapNewAndExecute(obj => obj.Name); Assert.AreEqual("Hello", retVal); }
public void TestExecuteReadLockedFunction() { var accessor = new ConcurrentObjectAccessor <TestObject>("Hello"); Assert.IsNotNull(accessor); Assert.IsNotNull(accessor.Reference); var retVal = accessor.ExecuteReadLocked(obj => obj.Name); Assert.AreEqual("Hello", retVal); }
public void TestSwapNewAndExecuteFunctionWithInit() { var accessor = new ConcurrentObjectAccessor <TestObject, TestObject>("Hello"); Assert.IsNotNull(accessor); Assert.IsNotNull(accessor.Reference); var retVal = accessor.SwapNewAndExecute(obj => { obj.Name = "Replaced"; }, obj => obj.Name); Assert.AreEqual("Hello", retVal); Assert.AreEqual("Replaced", accessor.Reference.Name); }
public void TestSwapNewAndExecuteGatedFunction() { var accessor = new ConcurrentObjectAccessor <TestObject, TestObject>("Hello"); Assert.IsNotNull(accessor); Assert.IsNotNull(accessor.Reference); var retVal = accessor.SwapNewAndExecute(gate => true, obj => obj.Name); Assert.AreEqual("Hello", retVal); retVal = accessor.SwapNewAndExecute(gate => false, obj => obj.Name); Assert.AreEqual(null, retVal); }
public void TestSwapNewAndExecuteProcedureWithInit() { var accessor = new ConcurrentObjectAccessor <TestObject, TestObject>("Hello"); Assert.IsNotNull(accessor); Assert.IsNotNull(accessor.Reference); string retVal = ""; accessor.SwapNewAndExecute(obj => { obj.Name = "Replaced"; }, obj => { retVal = obj.Name; }); Assert.AreEqual("Hello", retVal); Assert.AreEqual("Replaced", accessor.Reference.Name); }
public void TestSwapNewAndExecuteProcedure() { var accessor = new ConcurrentObjectAccessor <TestClass>("Hello"); Assert.IsNotNull(accessor); Assert.IsNotNull(accessor.Reference); string retVal = ""; accessor.SwapNewAndExecute(obj => { retVal = obj.Name; }); Assert.AreEqual("Hello", retVal); }
public void TestExecuteReadLockedProcedure() { var accessor = new ConcurrentObjectAccessor <TestObject, TestObject>("Hello"); Assert.IsNotNull(accessor); Assert.IsNotNull(accessor.Reference); string retVal = ""; accessor.ExecuteReadLocked(obj => { retVal = obj.Name; }); Assert.AreEqual("Hello", retVal); }
public void TestSwapNewAndExecuteGatedProcedure() { var accessor = new ConcurrentObjectAccessor <TestObject, TestObject>("Hello"); Assert.IsNotNull(accessor); Assert.IsNotNull(accessor.Reference); string retVal = ""; accessor.SwapNewAndExecute(gate => true, cleanupOldReference: obj => { retVal = obj.Name; }); Assert.AreEqual("Hello", retVal); retVal = null; accessor.SwapNewAndExecute(gate => false, cleanupOldReference: obj => { retVal = obj.Name; }); Assert.AreEqual(null, retVal); }