public void TestViewCache() { QueryTableModel actualTable = GetTestTableModel(); AvrDbHelper.InvalidateQueryCache(actualTable.QueryId, "en"); Assert.IsFalse(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false).HasValue); AvrDbHelper.SaveQueryCache(actualTable); long?queryCacheId = AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false); Assert.IsTrue(queryCacheId.HasValue); ViewDTO sourceView = GetCachedView(); var viewCacheId = AvrDbHelper.SaveViewCache(queryCacheId.Value, 1, sourceView); long?loadedViewCasheId = AvrDbHelper.GetViewCacheId(queryCacheId.Value, 11); Assert.IsFalse(loadedViewCasheId.HasValue); loadedViewCasheId = AvrDbHelper.GetViewCacheId(queryCacheId.Value, 1); Assert.IsTrue(loadedViewCasheId.HasValue); Assert.AreEqual(viewCacheId, loadedViewCasheId); var loadedView = AvrDbHelper.GetViewCache(viewCacheId, false); Assert.IsNotNull(loadedView); AvrDbHelper.InvalidateQueryCache(actualTable.QueryId); Assert.IsFalse(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false).HasValue); loadedViewCasheId = AvrDbHelper.GetViewCacheId(queryCacheId.Value, 1); Assert.IsFalse(loadedViewCasheId.HasValue); loadedView = AvrDbHelper.GetViewCache(viewCacheId, false); Assert.IsNotNull(loadedView); AssertAreArrayEqual(sourceView.BinaryViewHeader, loadedView.BinaryViewHeader); AssertAreArrayEqual(sourceView.Header.BinaryBody, loadedView.Header.BinaryBody); Assert.AreEqual(sourceView.BodyPackets.Count, loadedView.BodyPackets.Count); for (int i = 0; i < loadedView.BodyPackets.Count; i++) { AssertAreArrayEqual(sourceView.BodyPackets[i].BinaryBody, loadedView.BodyPackets[i].BinaryBody); } AvrDbHelper.SaveViewCache(queryCacheId.Value, 1, sourceView); loadedViewCasheId = AvrDbHelper.GetViewCacheId(queryCacheId.Value, 1); Assert.IsTrue(loadedViewCasheId.HasValue); AvrDbHelper.InvalidateViewCache(1); loadedViewCasheId = AvrDbHelper.GetViewCacheId(queryCacheId.Value, 1); Assert.IsFalse(loadedViewCasheId.HasValue); }