Ejemplo n.º 1
0
        public void CreateCacheRecord()
        {
            string objectFullName = ObjectNaming.CreateFullObjectName(
                ObjectTestHelper.NameSpace1,
                ObjectTestHelper.ObjectName1);

            var record = new ObjectIndexerCacheRecord();
            Assert.IsFalse(record.IsDirty);
            Assert.IsNull(record.ObjectFullName);
            Assert.AreEqual(0u, record.Version);
            Assert.AreEqual(0, record.TotalValues);
            Assert.IsNotNull(record.Cache);
            Assert.AreEqual(0, record.Cache.Count);
            Assert.IsNull(record.GetFromCache(2));

            record.IsDirty = true;
            record.ObjectFullName = objectFullName;
            record.Version = 3u;
            record.TotalValues = 5;

            Assert.IsTrue(record.IsDirty);
            Assert.AreEqual(objectFullName, record.ObjectFullName);
            Assert.AreEqual(3u, record.Version);
            Assert.AreEqual(5, record.TotalValues);
        }
Ejemplo n.º 2
0
        public void AddToCacheRecord()
        {
            var record = new ObjectIndexerCacheRecord();
            Assert.IsNull(record.GetFromCache(3));
            record.AddToCache(3, new int[] { 1, 2, 3 });
            Assert.AreEqual(3, record.TotalValues);

            int[] vals = record.GetFromCache(3);
            Assert.IsNotNull(vals);
            Assert.AreEqual(3, vals.Length);
            Assert.AreEqual(1, vals[0]);
            Assert.AreEqual(2, vals[1]);
            Assert.AreEqual(3, vals[2]);

            record.AddToCache(4, new int[] { 4 });
            Assert.AreEqual(4, record.TotalValues);
            vals = record.GetFromCache(3);
            Assert.IsNotNull(vals);
            Assert.AreEqual(3, vals.Length);

            vals = record.GetFromCache(4);
            Assert.IsNotNull(vals);
            Assert.AreEqual(1, vals.Length);
            Assert.AreEqual(4, vals[0]);
        }
Ejemplo n.º 3
0
 public void GetFromCacheRecord()
 {
     var record = new ObjectIndexerCacheRecord();
     Assert.IsNull(record.GetFromCache(3));
     record.AddToCache(3, new int[] { 1, 2, 3 });
     Assert.AreEqual(3, record.TotalValues);
     Assert.AreEqual(0, record.Cache[3].Counter);
     int[] vals = record.GetFromCache(3);
     Assert.IsNotNull(vals);
     Assert.AreEqual(1, record.Cache[3].Counter);
     vals = record.GetFromCache(3);
     vals = record.GetFromCache(3);
     Assert.AreEqual(3, record.Cache[3u].Counter);
     record.AddToCache(4, new int[] { 4 });
     Assert.AreEqual(0, record.Cache[4u].Counter);
     vals = record.GetFromCache(3);
     vals = record.GetFromCache(4);
     Assert.AreEqual(4, record.Cache[3].Counter);
     Assert.AreEqual(1, record.Cache[4].Counter);
 }
Ejemplo n.º 4
0
 private void _ReplaceObjectInCache(string objectFullName, ObjectIndexerCacheRecord replace)
 {
     if (_cacheLock.TryEnterWriteLock(WriteLockTimeout))
     {
         try
         {
             if (null != replace)
             {
                 _cache[objectFullName] = replace;
             }
         }
         finally
         {
             _cacheLock.ExitWriteLock();
         }
     }
     else
     {
         // this is an act of desparation to make sure that dirty values won't be read
         Reset();
     }
 }
Ejemplo n.º 5
0
 private ObjectIndexerCacheRecord _CreateObjectCacheRecord(string objectFullName, uint hash, int[] values)
 {
     var record = new ObjectIndexerCacheRecord()
     {
         ObjectFullName = objectFullName,
         Version = _versions.Current(objectFullName),
         IsDirty = false
     };
     record.AddToCache(hash, values);
     return record;
 }
Ejemplo n.º 6
0
 public void RemoveFromCacheRecord()
 {
     var record = new ObjectIndexerCacheRecord();
     Assert.IsNull(record.GetFromCache(3));
     record.AddToCache(3, new int[] { 1, 2, 3 });
     record.AddToCache(4, new int[] { 4 });
     record.AddToCache(5, new int[] { 5 });
     Assert.AreEqual(5, record.TotalValues);
     Assert.IsNotNull(record.GetFromCache(3));
     Assert.IsNotNull(record.GetFromCache(4));
     Assert.IsNotNull(record.GetFromCache(5));
     record.RemoveFromCache(4);
     Assert.AreEqual(4, record.TotalValues);
     Assert.IsNotNull(record.GetFromCache(3));
     Assert.IsNull(record.GetFromCache(4));
     Assert.IsNotNull(record.GetFromCache(5));
     record.RemoveFromCache(3);
     Assert.AreEqual(1, record.TotalValues);
     Assert.IsNull(record.GetFromCache(3));
     Assert.IsNull(record.GetFromCache(4));
     Assert.IsNotNull(record.GetFromCache(5));
 }