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()); }
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)); } } }