public async Task GeoCliInput_Default_HappyFlow() { var fakeIHttpProvider = new FakeIHttpProvider(new Dictionary <string, HttpContent> { }); var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, _serviceScopeFactory, new FakeIWebLogger()); var storage = new FakeIStorage(new List <string> { "/" }, new List <string> { "/test.jpg" }, new List <byte[]> { CreateAnImage.Bytes }); var hash = (await new FileHash(storage).GetHashCodeAsync("/test.jpg")).Key; storage.FileCopy("/test.jpg", $"/{hash}.jpg"); var geoWrite = new FakeIGeoLocationWrite(); var geoLookup = new FakeIGeoReverseLookup(); var console = new FakeConsoleWrapper(); var geoCli = new GeoCli(geoLookup, geoWrite, new FakeSelectorStorage(storage), new AppSettings(), console, new FakeIGeoFileDownload(), new FakeExifToolDownload()); await geoCli.CommandLineAsync(new List <string> { "-p", }.ToArray()); Assert.AreEqual(1, geoLookup.Count); Assert.IsTrue(storage.ExistFile($"/{hash}.jpg")); Assert.IsTrue(storage.ExistFile("/test.jpg")); }