public void TestThatProjectSettingsCanBeDecrypted() { // Arrange var mockProject = Mock.Get(MockObjects.Project()); var testSettings = new SettingsService(this.mockSettingsStorage.Object); var mockProjectSettings = Mock.Get(MockObjects.Settings(mockProject.Object.InternalUrn)); // Act testSettings.SaveProject(mockProject.Object, mockProjectSettings.Object); // Assert this.mockSettingsStorage.Setup(s => s.SettingsFileExsists()).Returns(true); var verifySettings = new SettingsService(this.mockSettingsStorage.Object); var retrievedProject = verifySettings.GetProjects().FirstOrDefault(); var retrievedSettings = verifySettings.GetProjectSettings(retrievedProject); Assert.AreEqual(1, retrievedSettings.Values.Count); var firstSetting = retrievedSettings.Values.First(); var pointer = Marshal.SecureStringToGlobalAllocUnicode(firstSetting.Value); var decryptedString = Marshal.PtrToStringUni(pointer); Assert.AreEqual("Test0", decryptedString); }
public void TestThatAProjectAndProjectSettingsAreUpdated() { // Arrange var mockProject = Mock.Get(MockObjects.Project()); var testSettings = new SettingsService(this.mockSettingsStorage.Object); var mockProjectSettings = Mock.Get(MockObjects.Settings(mockProject.Object.InternalUrn)); testSettings.SaveProject(mockProject.Object, mockProjectSettings.Object); // Act mockProject.SetupGet(p => p.Name).Returns("Changed name"); var changedValues = mockProjectSettings.Object.Values.Take(1).ToDictionary(d => d.Key, d => d.Value); mockProjectSettings.SetupGet(s => s.Values).Returns(changedValues); testSettings.SaveProject(mockProject.Object, mockProjectSettings.Object); // Assert this.mockSettingsStorage.Setup(s => s.SettingsFileExsists()).Returns(true); var verifySettings = new SettingsService(this.mockSettingsStorage.Object); var retrievedProject = verifySettings.GetProjects().FirstOrDefault(); var retrievedSettings = verifySettings.GetProjectSettings(retrievedProject); Assert.AreEqual("Changed name", retrievedProject.Name); Assert.AreEqual(1, retrievedSettings.Values.Count); }