public void TestThatAQueryAndQuerySettingsAreUpdated() { // Arrange var mockProject = MockObjects.Project(); var mockQuery = Mock.Get(MockObjects.Query(mockProject)); var testSettings = new SettingsService(this.mockSettingsStorage.Object); var mockQuerySettings = Mock.Get(MockObjects.Settings(mockQuery.Object.InternalUrn)); testSettings.SaveProject(mockProject); testSettings.SaveQuery(mockQuery.Object, mockQuerySettings.Object); // Act mockQuery.SetupGet(p => p.Name).Returns("Changed name"); var changedValues = mockQuerySettings.Object.Values.Take(1).ToDictionary(d => d.Key, d => d.Value); mockQuerySettings.SetupGet(s => s.Values).Returns(changedValues); testSettings.SaveQuery(mockQuery.Object, mockQuerySettings.Object); // Assert this.mockSettingsStorage.Setup(s => s.SettingsFileExsists()).Returns(true); var verifySettings = new SettingsService(this.mockSettingsStorage.Object); var retrievedQuery = verifySettings.GetQuerys().FirstOrDefault(); var retrievedSettings = verifySettings.GetQuerySettings(retrievedQuery); Assert.AreEqual("Changed name", retrievedQuery.Name); Assert.AreEqual(1, retrievedSettings.Values.Count); }