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"]);
            }

            
            

        }