public void SaveTest()
        {
            // Arrange
            var type = "HomeController";
            var key = $"{type}.{CultureInfo.CurrentUICulture.Name}";
            var hostingEnvironmentTest = TestHostingEnvironment();
            var fileSystem = TestFileSytem();
            var cache = new JsonLocalizationCache(hostingEnvironmentTest, fileSystem.Object);

            //act
            var dict = new TranslationDictionary();
            dict["specific"] = new Translation() { str = "Culture specific", Added = new DateTime(1) };

            cache.Save(new KeyValuePair<string, TranslationDictionary>(key, dict));
            //assert
            fileSystem.Verify(m => m.WriteAllText(It.IsAny<string>(), It.IsAny<string>()), Times.Once());
        }
        public void LoadTest()
        {
            // Arrange
            var hostingEnvironmentTest = TestHostingEnvironment();
            var fileSystem = TestFileSytem();
            var cache = new JsonLocalizationCache(hostingEnvironmentTest, fileSystem.Object);

            //Act
            var dictNotOnDisk = cache.Load("Nofile", CultureInfo.CurrentUICulture);
            var dictFromDisk = cache.Load("HomeController", CultureInfo.CurrentUICulture);
            dictFromDisk["specific"] = new Translation() { str = "", Added = new DateTime(0) };
            var dictFromDiskButAlreadyInCache = cache.Load("HomeController", CultureInfo.CurrentUICulture);
            var InvalidJsonFile= cache.Load("Invalid", CultureInfo.CurrentUICulture);
            //Assert
            Assert.Equal(0, dictNotOnDisk.Count);
            Assert.Equal(1, dictFromDisk.Count);

            Assert.Equal(1, dictFromDiskButAlreadyInCache.Count);
            Assert.Equal("Culture specific", dictFromDiskButAlreadyInCache["specific"].str);
        }
        public void onChangeTest()
        {
            // Arrange
            var hostingEnvironmentTest = TestHostingEnvironment();
            var fileSystem = TestFileSytem();
            var cache = new JsonLocalizationCache(hostingEnvironmentTest, fileSystem.Object);

            //Act
            cache.OnChanged(key+".json");
            
            //Assert
            Assert.Equal(1, cache.TranslationDictionaries[key].Count);
        }