public void GetSiteMap_NoParameterOverload_ShouldCallGenerateKeyAndPassResultToGetOrAdd() { // arrange var siteMapLoader = NewSiteMapLoader(); A.CallTo(() => siteMapCacheKeyGenerator.GenerateKey()).Returns("theKey"); // act var result = siteMapLoader.GetSiteMap(); // assert A.CallTo(() => siteMapCacheKeyGenerator.GenerateKey()).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => siteMapCache.GetOrAdd("theKey", A <Func <SiteMap> > .Ignored, A <ICacheDetails> .Ignored)).MustHaveHappened(Repeated.Exactly.Once); }
public virtual ISiteMap GetSiteMap(string siteMapCacheKey) { if (string.IsNullOrEmpty(siteMapCacheKey)) { siteMapCacheKey = siteMapCacheKeyGenerator.GenerateKey(); } return(siteMapCache.GetOrAdd( siteMapCacheKey, () => siteMapCreator.CreateSiteMap(siteMapCacheKey), () => siteMapCreator.GetCacheDetails(siteMapCacheKey))); }
public virtual ISiteMap GetSiteMap(string siteMapCacheKey) { if (String.IsNullOrEmpty(siteMapCacheKey)) { throw new ArgumentNullException("siteMapCacheKey"); } return(siteMapCache.GetOrAdd( siteMapCacheKey, () => siteMapCreator.CreateSiteMap(siteMapCacheKey), () => siteMapCreator.GetCacheDetails(siteMapCacheKey))); }
public SiteMap GetSiteMap(string siteMapCacheKey = null) { if (string.IsNullOrEmpty(siteMapCacheKey)) { siteMapCacheKey = siteMapCacheKeyGenerator.GenerateKey(); } // retrieve builderset var builderSet = GetBuilderSet(siteMapCacheKey); // check cache for sitemap if not available generate using builder // cache using cachedetails var siteMap = siteMapCache.GetOrAdd( siteMapCacheKey, () => siteMapBuilder.BuildSiteMap(builderSet, siteMapCacheKey), builderSet.CacheDetails ); // create new restricted sitemap based on user's permissions var restrictedSiteMap = VisitSiteMap(siteMap); // return new filtered sitemap return(restrictedSiteMap); }