Exemplo n.º 1
0
        public void Detach_NullPointerWorks()
        {
            //Act
            using (var target = new SafeComMemoryHandle())
            {
                var actual = target.Detach();

                //Assert
                actual.Should().BeZero();
                target.Pointer.Should().BeZero();
                target.IsInvalid.Should().BeTrue();
            };
        }
Exemplo n.º 2
0
        public void Dispose_DetachedPointerWorks()
        {
            var ptr = AllocateMemory(10);

            try
            {
                //Act
                var target = new SafeComMemoryHandle(ptr);
                var actual = target.Detach();
                target.Dispose();

                //Assert - doesn't really confirm the memory was released
                target.Pointer.Should().BeZero();
                target.IsInvalid.Should().BeTrue();
            } finally
            {
                FreeMemory(ptr);
            };
        }
Exemplo n.º 3
0
        public void Detach_ValidPointerWorks()
        {
            var ptr = AllocateMemory(50);

            try
            {
                //Act
                using (var target = new SafeComMemoryHandle(ptr))
                {
                    var actual = target.Detach();

                    //Assert
                    actual.Should().Be(ptr);
                    target.Pointer.Should().BeZero();
                    target.IsInvalid.Should().BeTrue();
                };
            } finally
            {
                FreeMemory(ptr);
            };
        }