public void TestOnlyUseTemplatesFromModulePath()
        {
            var templateRepository = CreateRepository("modules/Mod1/Mod1", "modules/Mod2/Mod2", "layouts/Layout1");
            var terrificNetConfig = CreateConfig();

            var underTest = new DefaultModuleRepository(terrificNetConfig, templateRepository);
            var result = underTest.GetAll().ToList();

            Assert.Equal(2, result.Count);
            Assert.Equal("modules/Mod1", result[0].Id);
            Assert.Equal("modules/Mod2", result[1].Id);
        }
        public void TestOnlyUseTemplatesFromModulePath()
        {
            var templateRepository = CreateRepository("modules/Mod1/Mod1", "modules/Mod2/Mod2", "layouts/Layout1");
            var terrificNetConfig  = CreateConfig();

            var underTest = new DefaultModuleRepository(terrificNetConfig, templateRepository);
            var result    = underTest.GetAll().ToList();

            Assert.AreEqual(2, result.Count);
            Assert.AreEqual("modules/Mod1", result[0].Id);
            Assert.AreEqual("modules/Mod2", result[1].Id);
        }
        public void TestModuleContainsUseDefaultTemplateWhenOnlyOneTemplateWithoutSkin()
        {
            var templateRepository = CreateRepository("modules/Mod1/test", "modules/Mod1/test-skin");
            var terrificNetConfig = CreateConfig();

            var underTest = new DefaultModuleRepository(terrificNetConfig, templateRepository);
            var result = underTest.GetAll().ToList();

            Assert.Equal(1, result.Count);
            Assert.Equal("modules/Mod1", result[0].Id);
            Assert.NotNull(result[0].DefaultTemplate);
            Assert.Equal("modules/Mod1/test", result[0].DefaultTemplate.Id);
            Assert.Equal(1, result[0].Skins.Count);
        }
        public void TestModuleContainsSkins()
        {
            var templateRepository = CreateRepository("modules/Mod1/Mod1-skin1", "modules/Mod1/Mod1-skin2");
            var terrificNetConfig = CreateConfig();

            var underTest = new DefaultModuleRepository(terrificNetConfig, templateRepository);
            var result = underTest.GetAll().ToList();

            Assert.Equal(1, result.Count);
            Assert.Equal("modules/Mod1", result[0].Id);
            Assert.Equal(2, result[0].Skins.Count);
            Assert.True(result[0].Skins.ContainsKey("skin1"), "Expected to have skin with name skin1");
            Assert.True(result[0].Skins.ContainsKey("skin2"), "Expected to have skin with name skin2");
        }
        public void TestModuleContainsUseDefaultTemplateWhenOnlyOneTemplate()
        {
            var templateRepository = CreateRepository("modules/Mod1/test");
            var terrificNetConfig = CreateConfig();

            var underTest = new DefaultModuleRepository(terrificNetConfig, templateRepository);
            var result = underTest.GetAll().ToList();

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual("modules/Mod1", result[0].Id, "Module name should be modules/Mod1");
            Assert.IsNotNull(result[0].DefaultTemplate);
            Assert.AreEqual("modules/Mod1/test", result[0].DefaultTemplate.Id);
            Assert.AreEqual(0, result[0].Skins.Count, "No skins expected for module");
        }
        public void TestModuleContainsUseDefaultTemplateWhenOnlyOneTemplateWithoutSkin()
        {
            var templateRepository = CreateRepository("modules/Mod1/test", "modules/Mod1/test-skin");
            var terrificNetConfig  = CreateConfig();

            var underTest = new DefaultModuleRepository(terrificNetConfig, templateRepository);
            var result    = underTest.GetAll().ToList();

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual("modules/Mod1", result[0].Id, "Module name should be modules/Mod1");
            Assert.IsNotNull(result[0].DefaultTemplate);
            Assert.AreEqual("modules/Mod1/test", result[0].DefaultTemplate.Id);
            Assert.AreEqual(1, result[0].Skins.Count, "One skin expected for module");
        }
        public void TestModuleContainsSkins()
        {
            var templateRepository = CreateRepository("modules/Mod1/Mod1-skin1", "modules/Mod1/Mod1-skin2");
            var terrificNetConfig  = CreateConfig();

            var underTest = new DefaultModuleRepository(terrificNetConfig, templateRepository);
            var result    = underTest.GetAll().ToList();

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual("modules/Mod1", result[0].Id, "Module name should be modules/Mod1");
            Assert.AreEqual(2, result[0].Skins.Count, "Two skins expected for module");
            Assert.IsTrue(result[0].Skins.ContainsKey("skin1"), "Expected to have skin with name skin1");
            Assert.IsTrue(result[0].Skins.ContainsKey("skin2"), "Expected to have skin with name skin2");
        }