public void AddRemoveTest()
        {
            var cache = new WeakCache <string, TestClass>(false, value => value.Text);

            TestClass item = new TestClass("1");

            cache.Add(item);
            Assert.AreEqual(1, cache.Count);

            item = new TestClass("2");
            cache.Add(item);
            Assert.AreEqual(2, cache.Count);
            Assert.AreEqual(item, cache[item.Text, false]);

            ICache <string, TestClass> icache = cache;

            Assert.AreEqual(item, icache[item.Text, false]);
            Assert.AreEqual(null, icache["3", false]);

            cache.Remove(item);
            Assert.AreEqual(1, cache.Count);

            cache.Clear();
            Assert.AreEqual(0, cache.Count);
        }
Exemple #2
0
            public static IDigitalInterrupt Bind(Pin pin,
                                                 string name = null,
                                                 ResistorMode internalResistorMode = ResistorMode.Disabled,
                                                 InterruptMode interruptMode       = InterruptMode.InterruptNone,
                                                 int debounceMilliseconds          = DigitalInterupt.DebounceDefault)
            {
                var result = NewInstance(pin, name, internalResistorMode, interruptMode, debounceMilliseconds);

                Cache.Add(pin, result);
                return(result);
            }
        public void IEnumerableTest()
        {
            var cache = new WeakCache <string, TestClass>(false, value => value.Text);

            for (int i = 0; i < 100; i++)
            {
                cache.Add(new TestClass("item " + i));
            }

            Assert.IsTrue(cache.Count >= 0);
            Assert.IsTrue(cache.Count <= 100);

            int itemsCount = 0;

            foreach (TestClass testClass in cache)
            {
                Assert.IsTrue(testClass == null || testClass.Text.StartsWith("item"), "Line 182");
                itemsCount++;
            }
            Assert.IsTrue(itemsCount >= 0);
            Assert.IsTrue(itemsCount <= 100);

            TestHelper.CollectGarbage(true);

            itemsCount = 0;
            foreach (TestClass testClass in cache)
            {
                Assert.IsTrue(testClass == null || testClass.Text.StartsWith("item"), "Line 196");
                itemsCount++;
            }
            Assert.IsTrue(itemsCount >= 0);
            Assert.IsTrue(itemsCount <= 100);
        }
Exemple #4
0
            public static IDigitalInput Bind(Pin pin, string name = null, ResistorMode internalResistorMode = ResistorMode.Disabled)
            {
                var result = NewInstance(pin, name, internalResistorMode);

                Cache.Add(pin, result);
                return(result);
            }
Exemple #5
0
            public static IAnalogInput Bind(AnalogChannel channel, string name = null)
            {
                var result = NewInstance(channel, name);

                Cache.Add(channel, result);
                return(result);
            }
Exemple #6
0
            public static IPwmOutput Bind(PwmChannel channel, string name = null)
            {
                var result = NewInstance(channel, name);

                Cache.Add(channel, result);
                return(result);
            }
Exemple #7
0
            public static IDigitalOutput Bind(Pin pin, string name = null, bool initialState = false)
            {
                var result = NewInstance(pin, name, initialState);

                Cache.Add(pin, result);
                return(result);
            }
        private void AddItem()
        {
            int count = random.Next(100000);

            while (!canFinish)
            {
                lock (globalCache) {
                    globalCache.Add(new TestClass("Item " + count));
                }
                count++;
            }
        }
Exemple #9
0
        internal static void ApplyInternal(FrameworkElement control, ThemeDictionary themeResources)
        {
            ValidationHelper.NotNull(control, "control");

            if (themeResources.Source == ThemeResources.Inherited)
            {
                themeResources.Control = new WeakReference(control);
            }
            control.Dispatcher.Invoke(() => ApplyCore(control.Resources, themeResources), DispatcherPriority.Render);

            Cache.Iterate(cachedControl => ApplyInternal(cachedControl, General.GetThemeResources(cachedControl)));
            Cache.Add(control);
        }
        public void ConstructorsTest()
        {
            var cache = new WeakCache <string, TestClass>(
                false, value => value.Text);

            Assert.IsNotNull(cache.KeyExtractor);

            var item = new TestClass("100");

            cache.Add(item);

            Assert.AreEqual(1, cache.Count);
        }
Exemple #11
0
        public Room GetRoom(int id, Habbo habbo = null)
        {
            Func <Habbo, Room> overrideLoader = GetOverrideLoader(id);

            if (overrideLoader == null)
            {
                return(_idCache[id]);
            }

            _roomIdSync.EnterWriteLock();
            try
            {
                Room room = overrideLoader(habbo);
                _idCache.Add(room.Id, room);
                return(room);
            }
            finally
            {
                _roomIdSync.ExitWriteLock();
            }
        }
Exemple #12
0
 public ResourceDictionary()
 {
     Cache.Add(this);
 }
        public void AddDenyTest()
        {
            var cache = new WeakCache <string, TestClass>(false, value => value.Text);

            Assert.Throws <ArgumentNullException>(() => cache.Add(null));
        }