public void TestCopyUnit() { string fromUnitName = Unitname; string toUnitName = "mockUnitname"; //store test object in the workspace using old name TestObject obj = new TestObject(); obj.Value = "value"; TestWorkspace.RegisterType(typeof(TestObject)); TestWorkspace.Store(fromUnitName, obj); //copy unit TestWorkspace.CopyUnit(fromUnitName, toUnitName); //both units should exists Assert.IsTrue(TestWorkspace.Exists(fromUnitName)); Assert.IsTrue(TestWorkspace.Exists(toUnitName)); //load old object TestObject oldObj = (TestObject)TestWorkspace.Load(Unitname); Assert.IsNotNull(oldObj); Assert.AreEqual(obj, oldObj); //check if we can load object by new name TestObject obj2 = (TestObject)TestWorkspace.Load(toUnitName); Assert.AreEqual(obj, obj2); //change one object, store it and test again oldObj.Value = "another value"; TestWorkspace.Store(fromUnitName, oldObj); //check if new object has not been affected obj2 = (TestObject)TestWorkspace.Load(toUnitName); Assert.AreEqual(obj, obj2); //it should still be equal to original object }