public void Constructor_InitializesInstance() { var ffmpegMock = new Mock <FFmpegClient>(); var bytes = new byte[] { (byte)'t', (byte)'e', (byte)'s', (byte)'t' }; var bytesHandle = Marshal.AllocHGlobal(bytes.Length); Marshal.Copy(bytes, 0, bytesHandle, bytes.Length); var nativeIOContext = new NativeAVIOContext { buffer = (byte *)bytesHandle, pos = 5, }; ffmpegMock .Setup(c => c.FreeAVHandle(It.IsAny <SafeHandle>())) .Verifiable(); var ffmpeg = ffmpegMock.Object; using (var handle = new AVIOContextHandle(ffmpeg, &nativeIOContext)) using (var context = new AVIOContext(ffmpeg, handle)) { Assert.Equal((int)&nativeIOContext, (int)context.NativeObject); var result = new byte[4]; Marshal.Copy((IntPtr)context.Buffer.NativeObject, result, 0, bytes.Length); Assert.Equal(bytes, result); } ffmpegMock.Verify(); Marshal.FreeHGlobal(bytesHandle); }
public void Constuctor_InitializesInstance() { var ffmpegMock = new Mock <FFmpegClient>(); var nativeIOContext = new NativeAVIOContext { pos = 5, }; ffmpegMock .Setup(c => c.FreeAVHandle(It.IsAny <SafeHandle>())) .Verifiable(); using (var handle = new AVIOContextHandle(ffmpegMock.Object, &nativeIOContext)) { Assert.Equal((int)&nativeIOContext, (int)handle.DangerousGetHandle().ToPointer()); } ffmpegMock.Verify(); }