void TestBoundedBuffer::TestReadBuffer() { BoundedBuffer buf (NULL, 10); buf.WriteStringAt(0, _T("abc"), 3); BoundedBuffer newbuf(buf.ReadBufferAt(0, 3)); assertMessage(newbuf.m_iMaxSize == 3, _T("Failed to read the buffer")); assertMessage(newbuf.ReadStringAt(0, 3) == _T("abc"), _T("Failed to read the buffer")); }
void TestBoundedBuffer::TestResizeBuffer() { BoundedBuffer buf (NULL, 10); buf.WriteStringAt(0, _T("abcdefghij"), 10); buf.ResizeBuffer(5); assertMessage(buf.m_iMaxSize == 5, _T("Resize failed")); assertMessage(buf.ReadStringAt(0, 5) == _T("abcde"), _T("Buffer contents should not be lost after resize")); buf.ResizeBuffer(15); assertMessage(buf.m_iMaxSize == 15, _T("Resize failed")); assertMessage(buf.ReadStringAt(0, 5) == _T("abcde"), _T("Buffer contents should not be lost after resize")); for(int i = 5; i < 15; ++i) { assertMessage(buf.ReadCharAt(i) == 0, _T("Failed to null out the new bytes")); } }
void TestBoundedBuffer::TestWriteBuffer() { unsigned char MasterBuf [100]; unsigned char NotMasterBuf [200]; BoundedBuffer master (MasterBuf, 100); BoundedBuffer smaller (NotMasterBuf, 50); BoundedBuffer bigger (NotMasterBuf, 200); master.ClearBuffer(); smaller.ClearBuffer(); smaller.WriteStringAt(0, _T("Hello Smaller"), 13); master.WriteBufferAt(0, smaller); assertMessage(CStdString((char*)(master.m_pBuf)) == _T("Hello Smaller"), _T("Failed to write the buffer")); assertThrows(master.WriteBufferAt(0, bigger), Workshare::Exception); assertMessage(CStdString((char*)(master.m_pBuf)) == _T("Hello Smaller"), _T("The buffer should throw without changing state if the incomming buffer is too large")); }