public void GetTermsStats_GetsValidStats_ReturnsValidObject() { var cacheObj = GetProfanityCacheObject(); var cache = _mocks.DynamicMock<ICacheManager>(); cache.Stub(x => x.Contains(ProfanityFilter.GetCacheKey("LASTUPDATE"))).Return(false); cache.Stub(x => x.Contains(ProfanityFilter.GetCacheKey())).Return(true); cache.Stub(x => x.GetData(ProfanityFilter.GetCacheKey())).Return(cacheObj); var reader = _mocks.DynamicMock<IDnaDataReader>(); reader.Stub(x => x.Read()).Return(false); var creator = _mocks.DynamicMock<IDnaDataReaderCreator>(); creator.Stub(x => x.CreateDnaDataReader("getallprofanities")).Return(reader); var diag = _mocks.DynamicMock<IDnaDiagnostics>(); _mocks.ReplayAll(); var profanityObj = new ProfanityFilter(creator, diag, cache, null, null); var stats = profanityObj.GetStats(typeof(ProfanityFilter)); Assert.IsNotNull(stats); Assert.AreEqual(typeof(ProfanityFilter).AssemblyQualifiedName, stats.Name); foreach (var modclass in profanityObj.GetObjectFromCache().ProfanityClasses.ModClassProfanities) { Assert.AreEqual(modclass.Value.ProfanityList.Count.ToString(), stats.Values["ModClassID_" + modclass.Key.ToString() + "_ProfanityList"]); Assert.AreEqual(modclass.Value.ReferList.Count.ToString(), stats.Values["ModClassID_" + modclass.Key.ToString() + "_ReferList"]); } }