예제 #1
0
        public void ReadsTheProperFileFromTheFileSystem()
        {
            String rootPath     = "c:\\";
            String expectedPath = System.IO.Path.Combine(rootPath, "SiteSettings.json");

            var connectionString = new ConnectionStringBuilder("this")
                                   .AddFilePath(rootPath)
                                   .Build();

            String json = new SiteSettingsFileBuilder()
                          .UseRandomValues()
                          .Build();

            var fileSystem = new MockFileServiceBuilder()
                             .AddSiteSettingsFile(json)
                             .Build(rootPath);

            var target = new ContentRepositoryBuilder()
                         .UseGenericDirectory()
                         .AddFileService(fileSystem.Object)
                         .Build(connectionString);

            var actual = target.GetSiteSettings();

            fileSystem.Verify(f => f.ReadAllText(expectedPath));
        }
예제 #2
0
        public void ThrowWithProperSettingNameIfSettingsCannotBeLoaded()
        {
            String expected    = typeof(SiteSettings).Name;
            String invalidJson = "<xml/>";

            string rootPath         = $"c:\\{String.Empty.GetRandom()}";
            var    connectionString = new ConnectionStringBuilder("this")
                                      .AddFilePath(rootPath)
                                      .Build();

            var fileService = new MockFileServiceBuilder()
                              .AddSiteSettingsFile(invalidJson)
                              .Build(rootPath);

            var target = new ContentRepositoryBuilder()
                         .UseGenericDirectory()
                         .AddFileService(fileService.Object)
                         .Build(connectionString);

            try
            {
                var actual = target.GetSiteSettings();
            }
            catch (SettingNotFoundException ex)
            {
                Assert.Equal(expected, ex.SettingName);
            }
        }
예제 #3
0
        public void ThrowSettingNotFoundExceptionIfSettingsContentIsInvalid()
        {
            String invalidJson = "<xml/>";

            string rootPath         = $"c:\\{String.Empty.GetRandom()}";
            var    connectionString = new ConnectionStringBuilder("this")
                                      .AddFilePath(rootPath)
                                      .Build();

            var fileService = new MockFileServiceBuilder()
                              .AddSiteSettingsFile(invalidJson)
                              .Build(rootPath);

            var target = new ContentRepositoryBuilder()
                         .UseGenericDirectory()
                         .AddFileService(fileService.Object)
                         .Build(connectionString);

            Assert.Throws <SettingNotFoundException>(() => target.GetSiteSettings());
        }
예제 #4
0
        private static void ExecutePropertyTest(SiteSettings siteSettings, String expected, Func <SiteSettings, String> fieldValueDelegate)
        {
            string rootPath         = $"c:\\{String.Empty.GetRandom()}";
            var    connectionString = new ConnectionStringBuilder("this")
                                      .AddFilePath(rootPath)
                                      .Build();

            var fileSystem = new MockFileServiceBuilder()
                             .AddSiteSettings(siteSettings)
                             .Build(rootPath);

            var target = new ContentRepositoryBuilder()
                         .UseGenericDirectory()
                         .AddFileService(fileSystem.Object)
                         .Build(connectionString);

            var actual = target.GetSiteSettings();

            Assert.Equal(expected, fieldValueDelegate(actual));
        }