コード例 #1
0
        public async Task RenderCopy_KeyNotFound()
        {
            var storage         = new FakeIStorage();
            var selectorStorage = new FakeSelectorStorage(storage);
            var appSettings     = new AppSettings
            {
                PublishProfiles = new Dictionary <string, List <AppSettingsPublishProfiles> >
                {
                    { "same", new List <AppSettingsPublishProfiles>
                      {
                          new AppSettingsPublishProfiles
                          {
                              ContentType     = TemplateContentType.Jpeg,
                              SourceMaxWidth  = 300,
                              OverlayMaxWidth = 380,
                              Folder          = "1000",
                              Append          = "_kl1k"
                          }
                      } }
                }
            };
            var service = new WebHtmlPublishService(new FakeIPublishPreflight(), selectorStorage, appSettings,
                                                    new FakeExifTool(storage, appSettings), new FakeIOverlayImage(selectorStorage),
                                                    new ConsoleWrapper(), new FakeIWebLogger());
            var result = await service.RenderCopy(new List <FileIndexItem>(),
                                                  "test", "test", "/");

            Assert.IsNull(result);
        }
コード例 #2
0
        public void ShouldSkipExtraLarge_SkipExtraLarge()
        {
            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                new byte[10]
            });
            var selectorStorage = new FakeSelectorStorage(storage);

            var service = new WebHtmlPublishService(new FakeIPublishPreflight(new List <AppSettingsPublishProfiles> {
                {
                    new AppSettingsPublishProfiles
                    {
                        SourceMaxWidth = 1000
                    }
                }
            }),
                                                    selectorStorage, null,
                                                    null, null, null, new FakeIWebLogger());

            var result = service.ShouldSkipExtraLarge("");

            Assert.IsTrue(result);
        }
コード例 #3
0
        public async Task PreGenerateThumbnail_Test()
        {
            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                CreateAnImageNoExif.Bytes
            });
            var selectorStorage = new FakeSelectorStorage(storage);

            var service = new WebHtmlPublishService(null, selectorStorage, null,
                                                    null, null, null, new FakeIWebLogger());
            var input = new List <FileIndexItem>
            {
                new FileIndexItem("/test.jpg")
                {
                    FileHash = "test_hash_01"
                }
            }.AsEnumerable();

            await service.PreGenerateThumbnail(input, "");

            Assert.IsTrue(storage.ExistFile("test_hash_01"));
        }
コード例 #4
0
        public async Task RenderCopy_ShouldNotCrash()
        {
            var storage         = new FakeIStorage();
            var selectorStorage = new FakeSelectorStorage(storage);
            var appSettings     = new AppSettings
            {
                PublishProfiles = new Dictionary <string, List <AppSettingsPublishProfiles> >
                {
                    { "test", new List <AppSettingsPublishProfiles>
                      {
                          new AppSettingsPublishProfiles
                          {
                              ContentType = TemplateContentType.Html,
                          },
                          new AppSettingsPublishProfiles
                          {
                              ContentType     = TemplateContentType.Jpeg,
                              SourceMaxWidth  = 300,
                              OverlayMaxWidth = 380,
                              Folder          = "1000",
                              Append          = "_kl1k"
                          },
                          new AppSettingsPublishProfiles
                          {
                              ContentType     = TemplateContentType.OnlyFirstJpeg,
                              SourceMaxWidth  = 300,
                              OverlayMaxWidth = 380,
                              Folder          = "1000",
                              Append          = "__fi_kl"
                          },
                          new AppSettingsPublishProfiles
                          {
                              ContentType = TemplateContentType.MoveSourceFiles,
                          },
                          new AppSettingsPublishProfiles
                          {
                              ContentType = TemplateContentType.PublishContent,
                          },
                          new AppSettingsPublishProfiles
                          {
                              ContentType = TemplateContentType.PublishManifest,
                          },
                      } }
                }
            };
            var service = new WebHtmlPublishService(new PublishPreflight(appSettings,
                                                                         new ConsoleWrapper()), selectorStorage, appSettings,
                                                    new FakeExifTool(storage, appSettings), new FakeIOverlayImage(selectorStorage),
                                                    new ConsoleWrapper(), new FakeIWebLogger());

            var result = await service.RenderCopy(new List <FileIndexItem>(),
                                                  "test", "test", "/");

            Assert.IsNotNull(result);
        }
コード例 #5
0
        public async Task GenerateJpeg_Thumbnail_CorruptOutput_Test()
        {
            var appSettings = new AppSettings
            {
                PublishProfiles = new Dictionary <string, List <AppSettingsPublishProfiles> >
                {
                    {
                        "default",
                        new List <AppSettingsPublishProfiles>
                        {
                            new AppSettingsPublishProfiles
                            {
                                ContentType = TemplateContentType.Jpeg,
                                Path        = "index.html",
                                MetaData    = true,
                            }
                        }
                    }
                },
                Verbose = true
            };
            var storage = new FakeIStorage(new List <string>(),
                                           new List <string> {
                "corrupt"
            },
                                           new List <byte[]> {
                CreateAnImage.Bytes
            });

            var selectorStorage = new FakeSelectorStorage(storage);

            var service = new WebHtmlPublishService(new PublishPreflight(appSettings,
                                                                         new ConsoleWrapper()), selectorStorage, appSettings,
                                                    new FakeExifTool(storage, appSettings), new FakeIOverlayImage(selectorStorage),
                                                    new ConsoleWrapper(), new FakeIWebLogger());

            var profiles = new PublishPreflight(appSettings,
                                                new ConsoleWrapper()).GetPublishProfileName("default");

            var generateJpeg = await service.GenerateJpeg(profiles.FirstOrDefault(),
                                                          new List <FileIndexItem> {
                new FileIndexItem("/test.jpg")
                {
                    FileHash = "fileHash"
                }
            },
                                                          Path.DirectorySeparatorChar.ToString(), 1);

            // should not output file due corrupt output of image generation
            Assert.IsTrue(generateJpeg.ContainsKey("test.jpg"));

            // removed in script due corrupt output
            Assert.IsFalse(storage.ExistFile(Path.DirectorySeparatorChar + "test.jpg"));
        }
コード例 #6
0
        public async Task RenderCopy_NoConfigItems()
        {
            var storage         = new FakeIStorage();
            var selectorStorage = new FakeSelectorStorage(storage);
            var appSettings     = new AppSettings();
            var service         = new WebHtmlPublishService(new FakeIPublishPreflight(), selectorStorage, appSettings,
                                                            new FakeExifTool(storage, appSettings), new FakeIOverlayImage(selectorStorage),
                                                            new ConsoleWrapper(), new FakeIWebLogger());
            var result = await service.RenderCopy(new List <FileIndexItem>(),
                                                  "test", "test", "/");

            Assert.IsNull(result);
        }
コード例 #7
0
        public async Task GenerateJpeg_Large_Test()
        {
            var appSettings = new AppSettings
            {
                PublishProfiles = new Dictionary <string, List <AppSettingsPublishProfiles> >
                {
                    {
                        "default",
                        new List <AppSettingsPublishProfiles>
                        {
                            new AppSettingsPublishProfiles
                            {
                                ContentType    = TemplateContentType.Jpeg,
                                Path           = "index.html",
                                MetaData       = false,
                                SourceMaxWidth = 1001
                            }
                        }
                    }
                },
                Verbose = true
            };
            var storage = new FakeIStorage(new List <string>(),
                                           new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                CreateAnImage.Bytes
            });

            var selectorStorage = new FakeSelectorStorage(storage);

            var service = new WebHtmlPublishService(new PublishPreflight(appSettings,
                                                                         new ConsoleWrapper()), selectorStorage, appSettings,
                                                    new FakeExifTool(storage, appSettings), new FakeIOverlayImage(selectorStorage),
                                                    new ConsoleWrapper(), new FakeIWebLogger());

            var profiles = new PublishPreflight(appSettings,
                                                new ConsoleWrapper()).GetPublishProfileName("default");

            var generateJpeg = await service.GenerateJpeg(profiles.FirstOrDefault(),
                                                          new List <FileIndexItem> {
                new FileIndexItem("/test.jpg")
            },
                                                          Path.DirectorySeparatorChar.ToString(), 1);

            Assert.IsTrue(generateJpeg.ContainsKey("test.jpg"));
            Assert.IsTrue(storage.ExistFile(Path.DirectorySeparatorChar + "test.jpg"));
        }
コード例 #8
0
        public async Task MoveSourceFiles_False()
        {
            var profile = new AppSettingsPublishProfiles
            {
                ContentType = TemplateContentType.MoveSourceFiles, Folder = "src",
            };

            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                "/test.jpg"
            });
            var selectorStorage = new FakeSelectorStorage(storage);
            var appSettings     = new AppSettings
            {
                PublishProfiles = new Dictionary <string, List <AppSettingsPublishProfiles> >
                {
                    {
                        "default",
                        new List <AppSettingsPublishProfiles>
                        {
                            profile
                        }
                    }
                },
                Verbose = true
            };

            var service = new WebHtmlPublishService(new PublishPreflight(appSettings, new ConsoleWrapper()),
                                                    selectorStorage, appSettings,
                                                    new FakeExifTool(storage, appSettings), new FakeIOverlayImage(selectorStorage),
                                                    new ConsoleWrapper(), new FakeIWebLogger());

            await service.GenerateMoveSourceFiles(profile,
                                                  new List <FileIndexItem> {
                new FileIndexItem("/test.jpg")
            }, "/",
                                                  false);

            // False situation
            Assert.IsTrue(storage.GetAllFilesInDirectoryRecursive("/")
                          .FirstOrDefault(p => p != null && p.Contains("src/test.jpg")) != null);

            // is True instead of False
            Assert.IsTrue(storage.ExistFile("/test.jpg"));
        }
コード例 #9
0
        public async Task RenderCopy_OnlyFirstJpeg_ShouldNotCrash()
        {
            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                CreateAnImage.Bytes
            });

            var selectorStorage = new FakeSelectorStorage(storage);
            var appSettings     = new AppSettings
            {
                PublishProfiles = new Dictionary <string, List <AppSettingsPublishProfiles> >
                {
                    { "test", new List <AppSettingsPublishProfiles>
                      {
                          new AppSettingsPublishProfiles
                          {
                              ContentType     = TemplateContentType.OnlyFirstJpeg,
                              SourceMaxWidth  = 300,
                              OverlayMaxWidth = 380,
                              Folder          = "",
                              Append          = "__fi_kl"
                          }
                      } }
                }
            };
            var overlayService = new FakeIOverlayImage(selectorStorage);
            var service        = new WebHtmlPublishService(new PublishPreflight(appSettings,
                                                                                new ConsoleWrapper()), selectorStorage, appSettings,
                                                           new FakeExifTool(storage, appSettings), overlayService,
                                                           new ConsoleWrapper(), new FakeIWebLogger());

            var result = await service.RenderCopy(new List <FileIndexItem>
            {
                new FileIndexItem("/test.jpg")
            },
                                                  "test", "test", "/");

            Assert.IsNotNull(result);
        }
コード例 #10
0
        public void AddFileHashIfNotExist_Test()
        {
            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                FakeCreateAn.CreateAnImage.Bytes
            });
            var selectorStorage = new FakeSelectorStorage(storage);

            var service = new WebHtmlPublishService(null, selectorStorage, null,
                                                    null, null, null, new FakeIWebLogger());
            var list = service.AddFileHashIfNotExist(new List <FileIndexItem> {
                new FileIndexItem("/test.jpg")
            });

            Assert.IsTrue(list.FirstOrDefault().FileHash != string.Empty);
        }