Пример #1
0
        public void UsingDisposedObject_Throws()
        {
            var cache = new CameraCache <int>();

            cache.Dispose();

            Assert.Throws <System.ObjectDisposedException>(() => cache.GetOrCreate(0, 0));
            Assert.Throws <System.ObjectDisposedException>(() => cache.ClearCamerasUnusedFor(0, 0));
            Assert.Throws <System.ObjectDisposedException>(() => cache.Clear());
            Assert.Throws <System.ObjectDisposedException>(() => cache.Dispose());
        }
Пример #2
0
        public void GetOrCreate_And_Clear_Works()
        {
            using (var cache = new CameraCache <int>())
            {
                var cameras = new Camera[5];
                for (var i = 0; i < cameras.Length; ++i)
                {
                    cameras[i] = cache.GetOrCreate(i, 0);
                    Assert.IsNotNull(cameras[i]);
                }

                // Clear the cameras
                cache.Clear();

                // Assert the cameras are destroyed on the C++ side
                for (var i = 0; i < cameras.Length; ++i)
                {
                    Assert.True(cameras[i].Equals(null));
                }
            }
        }