コード例 #1
0
        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);
        }