/// <summary> /// Creates an instance of the LocationCache that has a fake logger attached for /// checking that code is called. /// Suitable for unit and integration testing. /// </summary> /// <returns></returns> public CacheManager Create() { DiskStoragePath = Guid.NewGuid().ToString() + ".json"; L1Logger = serviceProvider.GetRequiredService <FakeLogger <LocationCacheMemory> >(); L2Logger = serviceProvider.GetRequiredService <FakeLogger <LocationCacheDisk> >(); Level1Cache = new LocationCacheMemory(L1Logger); Level2Cache = new LocationCacheDisk(L2Logger, DiskStoragePath); LocationCreator = serviceProvider.GetRequiredService <LocationCreator>(); Logger = serviceProvider.GetRequiredService <FakeLogger <CacheManager> >(); return(new CacheManager(Level1Cache, Level2Cache, LocationCreator, Logger)); }
/// <summary> /// Creates an instance of <see cref="Sawyer"/> that is wired up to real I/O but the cache and geocoders are all fake I/O classes for unit testing. /// </summary> /// <returns></returns> public Sawyer CreateWithLocalIO(string source, string destination) { var addressQualityChecker = serviceProvider.GetRequiredService <AddressQualityChecker>(); ReaderLogger = serviceProvider.GetRequiredService <FakeLogger <CsvTreeReader> >(); var reader = new CsvTreeReader(source, ReaderLogger); WriterLogger = serviceProvider.GetRequiredService <FakeLogger <JsonTreeWriter> >(); var writer = new JsonTreeWriter(WriterLogger, destination); GeocodeManager = new FakeGeocodeManager(); LocationCacheFactory = serviceProvider.GetRequiredService <FakeLocationCacheFactory>(); TreeParser = serviceProvider.GetRequiredService <TreeParser>(); return(new Sawyer(addressQualityChecker, GeocodeManager, LocationCacheFactory, null, TreeParser, reader, writer)); }