Esempio n. 1
0
        public async Task ExifToolCmdHelper_TestForFakeExifToolInjection()
        {
            var folderPaths = new List <string> {
                "/"
            };
            var inputSubPaths = new List <string> {
                "/test.dng"
            };

            var storage =
                new FakeIStorage(folderPaths, inputSubPaths,
                                 new List <byte[]> {
                FakeCreateAn.CreateAnImage.Bytes
            });

            var readMeta     = new ReadMeta(storage);
            var fakeExifTool = new FakeExifTool(storage, _appSettings);

            await new ExifCopy(storage, storage, fakeExifTool, readMeta).XmpSync("/test.dng");

            Assert.AreEqual(true, storage.ExistFile("/test.xmp"));
            var xmpContentReadStream = storage.ReadStream("/test.xmp");
            var xmpContent           = await new PlainTextFileHelper().StreamToStringAsync(xmpContentReadStream);

            // Those values are injected by fakeExifTool
            Assert.AreEqual(true, xmpContent.Contains("<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 11.30'>"));
            Assert.AreEqual(true, xmpContent.Contains("<rdf:li>test</rdf:li>"));
        }
Esempio n. 2
0
        public async Task UpdateAppSettingsTest_StorageFolder_JsonCheck()
        {
            var storage = new FakeIStorage(new List <string> {
                "test"
            });

            Environment.SetEnvironmentVariable("app__storageFolder", string.Empty);

            var appSettings = new AppSettings
            {
                AppSettingsPath = $"{Path.DirectorySeparatorChar}temp{Path.DirectorySeparatorChar}appsettings.json"
            };
            var controller = new AppSettingsController(appSettings, new FakeSelectorStorage(storage));
            await controller.UpdateAppSettings(
                new AppSettingsTransferObject
            {
                Verbose = true, StorageFolder = "test"
            });

            Assert.IsTrue(storage.ExistFile(appSettings.AppSettingsPath));

            var jsonContent = await new PlainTextFileHelper().StreamToStringAsync(
                storage.ReadStream(appSettings.AppSettingsPath));

            Assert.IsTrue(jsonContent.Contains("app\": {"));
            Assert.IsTrue(jsonContent.Contains("\"StorageFolder\": \""));
        }
Esempio n. 3
0
        public async Task SwaggerTest_Integration_Test()
        {
            var swaggerFilePath = Path.Join(_appSettings.TempFolder, _appSettings.Name.ToLowerInvariant() + ".json");

            var storage             = new FakeIStorage();
            var fakeSelectorStorage = new FakeSelectorStorage(storage);


            var host = WebHost.CreateDefaultBuilder()
                       .UseUrls("http://localhost:5051")
                       .ConfigureServices(services =>
            {
                services.AddMvcCore().AddApiExplorer();
                services.AddSwaggerGen();
                new SwaggerSetupHelper(_appSettings).Add01SwaggerGenHelper(services);
            })
                       .Configure(app =>
            {
                app.UseRouting();
                app.UseEndpoints(endpoints =>
                {
                    endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
                });

                new SwaggerSetupHelper(_appSettings).Add02AppUseSwaggerAndUi(app);
                using (var serviceScope = app.ApplicationServices
                                          .GetRequiredService <IServiceScopeFactory>()
                                          .CreateScope())
                {
                    var swaggerProvider = ( ISwaggerProvider )serviceScope.ServiceProvider.GetService(typeof(ISwaggerProvider));
                    new SwaggerExportHelper(null).Add03AppExport(_appSettings, fakeSelectorStorage, swaggerProvider);
                }
            }).Build();

            await host.StartAsync();

            await host.StopAsync();

            Assert.AreEqual(true, storage.ExistFile(swaggerFilePath));

            var swaggerFileContent =
                await new PlainTextFileHelper().StreamToStringAsync(
                    storage.ReadStream(swaggerFilePath));

            System.Console.WriteLine("swaggerFileContent " + swaggerFileContent);

            Assert.AreEqual(true, swaggerFileContent.Contains($"\"Title\": \"{_appSettings.Name}\""));
        }
Esempio n. 4
0
        public void ExifToolCmdHelper_XmpCreate()
        {
            var folderPaths = new List <string> {
                "/"
            };
            var inputSubPaths = new List <string> {
                "/test.dng"
            };
            var storage =
                new FakeIStorage(folderPaths, inputSubPaths,
                                 new List <byte[]> {
                FakeCreateAn.CreateAnImage.Bytes
            });

            var fakeReadMeta = new ReadMeta(storage);
            var fakeExifTool = new FakeExifTool(storage, _appSettings);

            new ExifCopy(storage, storage, fakeExifTool, fakeReadMeta).XmpCreate("/test.xmp");
            var result = new PlainTextFileHelper().StreamToString(storage.ReadStream("/test.xmp"));

            Assert.AreEqual("<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Starsky'>\n" +
                            "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>\n</rdf:RDF>\n</x:xmpmeta>", result);
        }