コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }