// The following code was generated by Microsoft Visual Studio 2005. // The test owner should check each test for validity. using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Text; using System.Collections.Generic; using Virtuoso.Miranda.Plugins.Native; using System.Diagnostics; namespace Virtuoso.Miranda.Plugins.UnitTests { /// ///This is a test class for Virtuoso.Miranda.Plugins.Native.InteropBufferPool and is intended ///to contain all Virtuoso.Miranda.Plugins.Native.InteropBufferPool Unit Tests /// [TestClass()] public class InteropBufferPoolTest { private TestContext testContextInstance; /// ///Gets or sets the test context which provides ///information about and functionality for the current test run. /// public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // //You can use the following additional attributes as you write your tests: // //Use ClassInitialize to run code before running the first test in the class // //[ClassInitialize()] //public static void MyClassInitialize(TestContext testContext) //{ //} // //Use ClassCleanup to run code after all tests in a class have run // //[ClassCleanup()] //public static void MyClassCleanup() //{ //} // //Use TestInitialize to run code before running each test // //[TestInitialize()] //public void MyTestInitialize() //{ //} // //Use TestCleanup to run code after each test has run // //[TestCleanup()] //public void MyTestCleanup() //{ //} // #endregion [TestInitialize] public void TestInitializer() { InteropBufferPool_Accessor.Refresh(); } /// ///A test for AcquireBuffer (int) /// [TestMethod()] public void AcquireBufferTest() { InteropBuffer buffer = null, buffer1 = null; try { int prev = InteropBufferPool_Accessor.NextAvailableBufferIndex; buffer = InteropBufferPool.AcquireBuffer(); Assert.AreEqual(prev + 1, InteropBufferPool_Accessor.NextAvailableBufferIndex); buffer1 = InteropBufferPool.AcquireBuffer(InteropBufferPool_Accessor.maximumAvailableBufferSize + 1); Assert.IsTrue(Array.IndexOf(InteropBufferPool_Accessor.Buffers, buffer1) == -1, "Acquired buffer is probably undersized."); try { InteropBufferPool.AcquireBuffer(0); Assert.Fail("Negative buffer size accepted."); } catch { } } finally { InteropBufferPool.ReleaseBuffer(buffer); InteropBufferPool.ReleaseBuffer(buffer1); } } [TestMethod()] public void AcquireReleaseExpandedBufferTest() { InteropBuffer buffer = null, buffer1 = null, buffer2 = null; int expandedSize = InteropBufferPool_Accessor.maximumAvailableBufferSize + 1; try { buffer = buffer1 = InteropBufferPool.AcquireBuffer(expandedSize); Assert.IsTrue(Array.IndexOf(InteropBufferPool_Accessor.Buffers, buffer) == -1, "Acquired buffer is probably undersized."); InteropBufferPool.ReleaseBuffer(buffer); Assert.IsTrue(Array.IndexOf(InteropBufferPool_Accessor.Buffers, buffer1) != -1, "Expanded buffer not assimilated."); buffer = InteropBufferPool.AcquireBuffer(expandedSize); Assert.IsTrue(buffer == buffer1, "Assimilated expanded buffer not used."); Assert.IsTrue(buffer.Size >= expandedSize, "Undersized buffer acquired."); InteropBufferPool.ReleaseBuffer(buffer); buffer = InteropBufferPool.AcquireBuffer(expandedSize); buffer1 = InteropBufferPool.AcquireBuffer(expandedSize); Assert.IsTrue(buffer != buffer1, "Reserved buffer acquired."); buffer2 = InteropBufferPool.AcquireBuffer(expandedSize); Assert.IsTrue(buffer2 != buffer && buffer2 != buffer1, "Reserved buffer acquired."); } finally { InteropBufferPool.ReleaseBuffer(buffer); InteropBufferPool.ReleaseBuffer(buffer1); InteropBufferPool.ReleaseBuffer(buffer2); } } /// ///A test for ReleaseBuffer (InteropBuffer) /// [TestMethod()] public void ReleaseBufferTest() { int prev = InteropBufferPool_Accessor.NextAvailableBufferIndex; InteropBuffer buffer = InteropBufferPool.AcquireBuffer(); InteropBuffer buffer1 = buffer; try { buffer.Lock(); InteropBufferPool.ReleaseBuffer(buffer); Assert.Fail("InteropBufferPool::ReleaseBuffer accepts locked buffers."); } catch { } finally { buffer.Unlock(); InteropBufferPool.ReleaseBuffer(buffer); } try { InteropBufferPool.ReleaseBuffer(buffer1); Assert.Fail("InteropBufferPool::ReleaseBuffer accepts already released buffers."); } catch { } Assert.AreEqual(prev, InteropBufferPool_Accessor.NextAvailableBufferIndex); try { IntPtr ptr = buffer.IntPtr; Assert.Fail("InteropBufferPool::ReleaseBuffer does not dispose released buffers."); } catch { } } } }