public void Dispose()
        {
            var x = new FakeNativeObject((IntPtr)1, false);

            Assert.That(x.RetainCount, Is.EqualTo(1), "1");
            x.Dispose();
            Assert.That(x.RetainCount, Is.EqualTo(0), "0");
            Assert.Throws <ObjectDisposedException> (() => x.GetCheckedHandle(), "Dispose");
            // Dispose should be safe to call multiple times
            x.Dispose();
        }