private static void TestInternalSaveTable(QueryTableModel source) { QueryTableModel actualTable = GetTestTableModel(); AvrDbHelper.InvalidateQueryCache(actualTable.QueryId, "en"); Assert.IsFalse(AvrDbHelper.GetQueryCacheId(source.QueryId, "en", false).HasValue); AvrDbHelper.SaveQueryCache(source); // manager.CommitTransaction(); long?id = AvrDbHelper.GetQueryCacheId(source.QueryId, "en", false); Assert.IsTrue(id.HasValue); QueryTableHeaderDTO resultHeader = AvrDbHelper.GetQueryCacheHeader(id.Value, false, false); Assert.IsNotNull(resultHeader); Assert.IsNotNull(resultHeader.BinaryHeader); Assert.AreEqual(id.Value, resultHeader.QueryCacheId); Assert.AreEqual(source.BodyPackets.Count, resultHeader.PacketCount); Assert.AreEqual(source.Header.RowCount, resultHeader.BinaryHeader.RowCount); AssertAreArrayEqual(source.Header.BinaryBody, resultHeader.BinaryHeader.BinaryBody); for (int i = 0; i < resultHeader.PacketCount; i++) { QueryTablePacketDTO resultPacket = AvrDbHelper.GetQueryCachePacket(id.Value, i); Assert.IsNotNull(resultPacket); Assert.IsNotNull(resultPacket.BinaryBody); QueryTablePacketDTO sourcePacket = source.BodyPackets[i]; Assert.IsNotNull(sourcePacket); Assert.IsNotNull(sourcePacket.BinaryBody); Assert.AreEqual(sourcePacket.RowCount, resultPacket.RowCount); AssertAreArrayEqual(sourcePacket.BinaryBody, resultPacket.BinaryBody); } }
public void TestRefreshedCacheOnUserCallAfterDaysTable() { QueryTableModel actualTable = GetTestTableModel(); AvrDbHelper.InvalidateQueryCache(actualTable.QueryId, "en"); Assert.IsFalse(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false).HasValue); AvrDbHelper.SaveQueryCache(actualTable); long?id = AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false); Assert.IsTrue(id.HasValue); id = AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false, 0, true); Assert.IsTrue(id.HasValue); id = AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false, 0); Assert.IsFalse(id.HasValue); id = AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false, 1); Assert.IsTrue(id.HasValue); UpdateQueryRefreshDate(id, -6); id = AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false); Assert.IsTrue(id.HasValue); UpdateQueryRefreshDate(id, -8); id = AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false); Assert.IsFalse(id.HasValue); }
private static void TestInternalSaveDeleteTable(QueryTableModel source) { AvrDbHelper.InvalidateQueryCache(source.QueryId, "en"); Assert.IsFalse(AvrDbHelper.GetQueryCacheId(source.QueryId, "en", false).HasValue); AvrDbHelper.SaveQueryCache(source); // manager.CommitTransaction(); long?id = AvrDbHelper.GetQueryCacheId(source.QueryId, "en", false); Assert.IsTrue(id.HasValue); long queryCacheId = id.Value; Assert.AreNotEqual(0, AvrDbHelper.GetQueryCacheHeader(queryCacheId, false, false).BinaryHeader.BinaryBody.Length); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCachePacket(queryCacheId, 0).BinaryBody.Length); AvrDbHelper.InvalidateQueryCache(source.QueryId, "en"); Assert.IsNull(AvrDbHelper.GetQueryCacheId(source.QueryId, "en", false)); Assert.IsNotNull(AvrDbHelper.GetQueryCacheId(source.QueryId, "en", false, 7, true)); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCacheHeader(queryCacheId, false, false).BinaryHeader.BinaryBody.Length); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCachePacket(queryCacheId, 0).BinaryBody.Length); AvrDbHelper.DeleteQueryCache(source.QueryId, "en", true); Assert.IsNull(AvrDbHelper.GetQueryCacheId(source.QueryId, "en", false)); Assert.IsNotNull(AvrDbHelper.GetQueryCacheId(source.QueryId, "en", false, 7, true)); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCacheHeader(queryCacheId, false, false).BinaryHeader.BinaryBody.Length); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCachePacket(queryCacheId, 0).BinaryBody.Length); AvrDbHelper.SaveQueryCache(source); AvrDbHelper.InvalidateQueryCache(source.QueryId, "en"); AvrDbHelper.DeleteQueryCache(source.QueryId, "en", true); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCacheHeader(queryCacheId, false, false).BinaryHeader.BinaryBody.Length); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCachePacket(queryCacheId, 0).BinaryBody.Length); Assert.IsNull(AvrDbHelper.GetQueryCacheId(source.QueryId, "en", false)); long?id2 = AvrDbHelper.GetQueryCacheId(source.QueryId, "en", false, 7, true); Assert.IsTrue(id2.HasValue); long queryCacheId2 = id2.Value; UpdateDateCacheRequest(source.QueryId); AvrDbHelper.DeleteQueryCache(source.QueryId, "en", true); Assert.AreEqual(0, AvrDbHelper.GetQueryCacheHeader(queryCacheId, false, false).BinaryHeader.BinaryBody.Length); Assert.AreEqual(0, AvrDbHelper.GetQueryCachePacket(queryCacheId, 0).BinaryBody.Length); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCacheHeader(queryCacheId2, false, false).BinaryHeader.BinaryBody.Length); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCachePacket(queryCacheId2, 0).BinaryBody.Length); UpdateDateCacheRequest(source.QueryId); AvrDbHelper.DeleteQueryCache(source.QueryId, "en", false); Assert.IsNull(AvrDbHelper.GetQueryCacheId(source.QueryId, "en", false, 7, true)); Assert.AreEqual(0, AvrDbHelper.GetQueryCacheHeader(queryCacheId2, false, false).BinaryHeader.BinaryBody.Length); Assert.AreEqual(0, AvrDbHelper.GetQueryCachePacket(queryCacheId2, 0).BinaryBody.Length); }
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); }
public void TestGetQueryHeader() { QueryTableModel actualTable = GetTestTableModel(); AvrDbHelper.InvalidateQueryCache(actualTable.QueryId, "en"); Assert.IsFalse(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false).HasValue); AvrDbHelper.SaveQueryCache(actualTable); long?id = AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false); Assert.IsTrue(id.HasValue); AvrDbHelper.GetQueryCacheHeader(id.Value, true, false); var requestDate = GetDateUserQueryCacheRequest(id); Assert.AreEqual(DBNull.Value, requestDate); AvrDbHelper.GetQueryCacheHeader(id.Value, false, false); requestDate = GetDateUserQueryCacheRequest(id); Assert.AreNotEqual(DBNull.Value, requestDate); }
public void TestSaveDeleteFullArchiveTable() { QueryTableModel actualTable = GetTestTableModel(); AvrDbHelper.InvalidateQueryCache(actualTable.QueryId, "en"); Assert.IsFalse(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false).HasValue); AvrDbHelper.SaveQueryCache(actualTable); Assert.IsNotNull(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false)); Assert.IsNull(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", true)); QueryTableModel archiveTable = GetTestTableModel(true); AvrDbHelper.SaveQueryCache(archiveTable); long?actualId = AvrDbHelper.GetQueryCacheId(archiveTable.QueryId, "en", false); long?archiveId = AvrDbHelper.GetQueryCacheId(archiveTable.QueryId, "en", false); Assert.IsTrue(actualId.HasValue); Assert.IsTrue(archiveId.HasValue); QueryTableHeaderDTO archiveHeader = AvrDbHelper.GetQueryCacheHeader(archiveId.Value, false, true); QueryTableHeaderDTO actualHeader = AvrDbHelper.GetQueryCacheHeader(actualId.Value, false, false); Assert.AreEqual(archiveHeader.BinaryHeader.BinaryBody.Length, actualHeader.BinaryHeader.BinaryBody.Length); Assert.AreEqual(1, actualHeader.PacketCount); Assert.AreEqual(2, archiveHeader.PacketCount); Assert.IsFalse(AvrDbHelper.GetQueryCachePacket(archiveId.Value, 0).IsArchive); Assert.IsTrue(AvrDbHelper.GetQueryCachePacket(archiveId.Value, 1).IsArchive); AvrDbHelper.InvalidateQueryCache(actualTable.QueryId, "en"); Assert.IsNull(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false)); Assert.IsNull(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", true)); Assert.IsNotNull(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false, 7, true)); Assert.IsNotNull(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", true, 7, true)); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCacheHeader(archiveId.Value, false, false).BinaryHeader.BinaryBody.Length); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCacheHeader(archiveId.Value, false, true).BinaryHeader.BinaryBody.Length); Assert.AreNotEqual(0, AvrDbHelper.GetQueryCachePacket(archiveId.Value, 0).BinaryBody.Length); }
public void TestGetUserQueryRefershDateHeader() { QueryTableModel table = GetTestTableModel(); AvrDbHelper.SaveQueryCache(table); var queryId = table.QueryId; long?id = AvrDbHelper.GetQueryCacheId(queryId, "en", false); Assert.IsTrue(id.HasValue); using (var avrTran = new AvrDbTransaction()) { DbManagerProxy manager = avrTran.Manager; DbManager command = manager.SetCommand( @" update QueryCache set datUserQueryCacheRequest = NULL where [idfQuery] = @idflQuery", manager.Parameter("idflQuery", queryId) ); command.ExecuteNonQuery(); avrTran.CommitTransaction(); } var date = AvrDbHelper.GetsQueryCacheUserRequestDate(queryId); Assert.IsFalse(date.HasValue); AvrDbHelper.GetQueryCacheHeader(id.Value, true, false); date = AvrDbHelper.GetsQueryCacheUserRequestDate(queryId); Assert.IsFalse(date.HasValue); AvrDbHelper.GetQueryCacheHeader(id.Value, false, false); date = AvrDbHelper.GetsQueryCacheUserRequestDate(queryId); Assert.IsTrue(date.HasValue); }