public void ToString_ReturnedStringIsEmptyWhenPointerIsZero() { var target = new SafeBStrHandle(); //Act var actual = target.ToString(); //Assert actual.Should().BeEmpty(); }
public void Ctor_NullPointerWorks() { //Act using (var target = new SafeBStrHandle(IntPtr.Zero)) { //Assert target.Pointer.Should().BeZero(); target.IsInvalid.Should().BeTrue(); }; }
public void StringToBStr_NullStringWorks() { //Act using (var target = SafeBStrHandle.StringToBStr(null)) { //Assert target.Pointer.Should().BeZero(); target.IsInvalid.Should().BeTrue(); }; }
public void ToString_ReturnedStringIsEmptyWhenZeroFree() { var ptr = Marshal.StringToBSTR("Hello"); var target = new SafeBStrHandle(ptr, true); //Act var actual = target.ToString(); //Assert actual.Should().BeEmpty(); }
public void ToString_ReturnsString() { var expected = "Hello"; var target = SafeBStrHandle.StringToBStr(expected); //Act var actual = target.ToString(); //Assert actual.Should().Be(expected); }
public void Dispose_NullPointerWorks() { //Act var target = new SafeBStrHandle(); target.Dispose(); //Assert - No real way to confirm the memory was released target.Pointer.Should().BeZero(); target.IsInvalid.Should().BeTrue(); }
public void Ctor_ValidPointerWorks() { var expected = AllocateMemory(10); //Act using (var target = new SafeBStrHandle(expected)) { //Assert target.Pointer.Should().Be(expected); target.IsInvalid.Should().BeFalse(); }; }
public void Dispose_ValidPointerWorks() { var ptr = AllocateMemory(10); //Act var target = new SafeBStrHandle(ptr); target.Dispose(); //Assert - No real way to confirm the memory was released target.Pointer.Should().BeZero(); target.IsInvalid.Should().BeTrue(); }
public void Detach_NullPointerWorks() { //Act using (var target = new SafeBStrHandle()) { var actual = target.Detach(); //Assert target.Pointer.Should().BeZero(); target.IsInvalid.Should().BeTrue(); actual.Should().BeZero(); }; }
public void StringToBStr_ValidStringWorks() { var str = "Hello"; //Act using (var target = SafeBStrHandle.StringToBStr(str)) { //Assert target.Pointer.Should().NotBeZero(); target.IsInvalid.Should().BeFalse(); AssertMemory(target.Pointer, Encoding.Unicode.GetBytes("Hello")); }; }
public void Attach_NullPointerWorks() { var original = AllocateMemory(10); //Act using (var target = new SafeBStrHandle(original)) { target.Attach(IntPtr.Zero); //Assert target.Pointer.Should().BeZero(); target.IsInvalid.Should().BeTrue(); }; }
public void Detach_ValidPointerWorks() { var expected = AllocateMemory(10); //Act using (var target = new SafeBStrHandle(expected)) { var actual = target.Detach(); //Assert target.Pointer.Should().BeZero(); target.IsInvalid.Should().BeTrue(); actual.Should().Be(expected); }; }
public void Attach_ReplaceValidPointerWorks() { var original = AllocateMemory(10); var expected = AllocateMemory(20); //Act using (var target = new SafeBStrHandle(original)) { target.Attach(expected); //Assert target.Pointer.Should().Be(expected); target.IsInvalid.Should().BeFalse(); }; }
public void Ctor_ZeroFreeMemory() { var ptr = Marshal.StringToBSTR("Hello"); var expected = new byte[10]; var target = new SafeBStrHandle(ptr, true); //Act target.Close(); var actual = new byte[10]; Marshal.Copy(ptr, actual, 0, actual.Length); //Assert actual.Should().ContainInOrder(expected); }
public void Dispose_DetachedPointerWorks() { var ptr = AllocateMemory(10); try { //Act var target = new SafeBStrHandle(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); }; }