public async Task GetResourceAsyncFetchesLocalization() { ResetCounters(); DataMetaWrapper <TranslationData> resource = await _service.GetResourceAsync <TranslationData>(LanguageLocale, NStackPlatform.Web, "1.0.0"); Assert.AreEqual(_danish, resource); }
public async Task GetResourceAsyncDoesntFetchLocalizationOnSecondCall() { ResetCounters(); DataMetaWrapper <TranslationData> resource = await _service.GetResourceAsync <TranslationData>(LanguageLocale, NStackPlatform.Web, "1.0.0"); DataMetaWrapper <TranslationData> resource2 = await _service.GetResourceAsync <TranslationData>(LanguageLocale, NStackPlatform.Web, "1.0.0"); _repository.Verify(s => s.DoRequestAsync <DataAppOpenWrapper>(It.IsAny <RestRequest>(), It.IsAny <Action <HttpStatusCode> >()), Times.Once()); _localizeService.Verify(s => s.GetResourceAsync <TranslationData>(LanguageId), Times.Once()); }
public async Task GetDefaultResourceAsyncFetchLocalizationOnSecondCallOnExpiry() { ResetCounters(); DataMetaWrapper <TranslationData> resource = await _service.GetDefaultResourceAsync <TranslationData>(NStackPlatform.Web, "1.0.0"); _memoryCache.Set <DateTime>("nstack-last-updated", DateTime.UtcNow.AddHours(-2)); DataMetaWrapper <TranslationData> resource2 = await _service.GetDefaultResourceAsync <TranslationData>(NStackPlatform.Web, "1.0.0"); _repository.Verify(s => s.DoRequestAsync <DataAppOpenWrapper>(It.IsAny <RestRequest>(), It.IsAny <Action <HttpStatusCode> >()), Times.Exactly(2)); _localizeService.Verify(s => s.GetResourceAsync <TranslationData>(LanguageId), Times.Exactly(2)); }
public void Initialize() { _repository = new Mock <INStackRepository>(MockBehavior.Strict); _repository.Setup(r => r.DoRequestAsync <DataAppOpenWrapper>(It.Is <RestRequest>(s => s.Resource.EndsWith("api/v2/open")), It.IsAny <Action <HttpStatusCode> >())) .Returns(GetAppOpenMock); var danish = new TranslationData(); var defaultSection = new DefaultSection(); defaultSection.TryAdd("text", "Jeg er på dansk"); danish.TryAdd("default", defaultSection); _danish = new DataMetaWrapper <TranslationData> { Data = danish, Meta = new MetaData { Language = new Language { Direction = LanguageDirection.LRM, Id = LanguageId, IsBestFit = true, IsDefault = true, Locale = LanguageLocale, Name = "Danish" }, Platform = new ResourcePlatform { Id = LanguageId, Slug = NStackPlatform.Web } } }; _localizeService = new Mock <INStackLocalizeService>(MockBehavior.Strict); _localizeService.Setup(r => r.GetResourceAsync <TranslationData>(It.Is <int>(id => id == LanguageId))) .Returns(Task.FromResult(_danish)); var services = new ServiceCollection(); services.AddMemoryCache(); var serviceProvider = services.BuildServiceProvider(); _memoryCache = serviceProvider?.GetService <IMemoryCache>() ?? throw new ArgumentNullException(); _service = new NStackAppService(_repository.Object, _localizeService.Object, _memoryCache); }
public async Task <IActionResult> Index() { Guid userId = GetUserId(); TermsWithContent newestTerms = await GetNewestTerms(userId, Request.GetCurrentLanguage()); DataMetaWrapper <Translation> translations = await GetTranslations(); var viewModel = new TermsViewModel { Content = newestTerms.Content.Data, HasApproved = newestTerms.HasViewed, Headline = translations.Data.Terms.Headline, ApproveButton = translations.Data.Terms.Approve, HasApprovedString = translations.Data.Terms.HasApproved }; return(View(viewModel)); }
public async Task <IActionResult> Index() { DataMetaWrapper <Translation> res = await GetTranslations(); return(View(res.Data.Default)); }