Example #1
0
        public void GetLoopInfo_ShouldPassOnOneResult()
        {
            var loopInfo = new LibsndfileLoopInfo();
            var unmanagedMemoryMock = new Mock<UnmanagedMemoryHandle>();

            var marshallerMock = new Mock<ILibsndfileMarshaller>();
            marshallerMock.Setup(x => x.Allocate<LibsndfileLoopInfo>()).Returns(unmanagedMemoryMock.Object);
            marshallerMock.Setup(x => x.MemoryHandleTo<LibsndfileLoopInfo>(unmanagedMemoryMock.Object)).Returns(loopInfo);

            var mock = new Mock<ILibsndfileApi>();
            mock.Setup(x => x.Command(It.IsAny<IntPtr>(), It.IsAny<LibsndfileCommand>(), It.IsAny<IntPtr>(), It.IsAny<int>())).Returns(1);

            var api = new LibsndfileCommandApiNativeWrapper(mock.Object, marshallerMock.Object);
            var retval = api.GetLoopInfo(new IntPtr(1));

            Assert.IsTrue(retval.HasValue);
            Assert.AreEqual(loopInfo, retval.Value);
        }