public void SaveErrorTest() { var key = new Mock <IRegistryKey>(MockBehavior.Strict); var subkey = new Mock <IRegistryKey>(MockBehavior.Strict); key.Setup(k => k.CreateSubKey(It.IsAny <string>())).Returns(subkey.Object); subkey.Setup(k => k.SetValue(It.IsAny <string>(), It.IsAny <string>())).Throws (new SecurityException("Simulating no access when setting value. :)")); subkey.Setup(k => k.DeleteValue(It.IsAny <string>(), It.IsAny <bool>())).Throws (new SecurityException("Simulating no access when deleting value. :)")); var package = new Mock <IReAttachPackage>(); package.Setup(p => p.OpenUserRegistryRoot()).Returns(key.Object); package.Setup(p => p.Reporter).Returns(new ReAttachTraceReporter()); var repository = new ReAttachRegistryRepository(package.Object); var targets = new ReAttachTargetList(ReAttachConstants.ReAttachHistorySize); Assert.IsFalse(repository.SaveTargets(targets)); for (var i = 1; i <= 3; i++) { targets.AddFirst(new ReAttachTarget(i, "path" + i, "user" + i)); } Assert.IsFalse(repository.SaveTargets(targets)); }
public void NullKeysTest() { var package = new Mock <IReAttachPackage>(MockBehavior.Strict); package.Setup(p => p.OpenUserRegistryRoot()).Returns <IRegistryKey>(null); package.Setup(p => p.Reporter).Returns(new ReAttachTraceReporter()); var repository = new ReAttachRegistryRepository(package.Object); Assert.IsNull(repository.LoadTargets(), "Null key should have resulted in empty result from load method."); Assert.IsFalse(repository.SaveTargets(new ReAttachTargetList(ReAttachConstants.ReAttachHistorySize)), "Null key should have resulted in false result from save method."); var key = new Mock <IRegistryKey>(MockBehavior.Strict); key.Setup(k => k.OpenSubKey(It.IsAny <string>())).Returns <IRegistryKey>(null); key.Setup(k => k.CreateSubKey(It.IsAny <string>())).Returns <IRegistryKey>(null); key.Setup(k => k.Close()); package.Setup(p => p.OpenUserRegistryRoot()).Returns(key.Object); Assert.IsNull(repository.LoadTargets(), "Null subkey should have resulted in empty result from load method."); Assert.IsFalse(repository.SaveTargets(new ReAttachTargetList(ReAttachConstants.ReAttachHistorySize)), "Null subkey should have resulted in false result from save method."); }
public void SaveTest() { var key = new Mock <IRegistryKey>(); var subkey = new Mock <IRegistryKey>(); key.Setup(k => k.CreateSubKey(It.IsAny <string>())).Returns(subkey.Object); var package = new Mock <IReAttachPackage>(); package.Setup(p => p.OpenUserRegistryRoot()).Returns(key.Object); var repository = new ReAttachRegistryRepository(package.Object); var targets = new ReAttachTargetList(ReAttachConstants.ReAttachHistorySize); for (var i = 1; i <= 3; i++) { targets.AddFirst(new ReAttachTarget(i, "path" + i, "user" + i)); } Assert.IsTrue(repository.SaveTargets(targets)); key.Verify(k => k.CreateSubKey(It.IsAny <string>()), Times.Once()); for (var i = 1; i <= 3; i++) { subkey.Verify(k => k.SetValue( ReAttachConstants.ReAttachRegistryHistoryKeyPrefix + i, It.IsAny <string>()), Times.Once()); } subkey.Verify(k => k.Close(), Times.Once()); }
public void EmptySaveTest() { var key = new Mock <IRegistryKey>(); var subkey = new Mock <IRegistryKey>(); key.Setup(k => k.CreateSubKey(It.IsAny <string>())).Returns(subkey.Object); var package = new Mock <IReAttachPackage>(); package.Setup(p => p.OpenUserRegistryRoot()).Returns(key.Object); var repository = new ReAttachRegistryRepository(package.Object); var targets = new ReAttachTargetList(ReAttachConstants.ReAttachHistorySize); Assert.IsTrue(repository.SaveTargets(targets)); key.Verify(k => k.CreateSubKey(It.IsAny <string>()), Times.Once()); subkey.Verify(k => k.SetValue(It.IsAny <string>(), It.IsAny <string>()), Times.Never()); subkey.Verify(k => k.Close(), Times.Once()); }