You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2007/06/28 18:45:45 UTC

svn commit: r551619 - in /activemq/activemq-cpp/trunk/src/test/activemq/io: DataInputStreamTest.cpp DataInputStreamTest.h

Author: tabish
Date: Thu Jun 28 09:45:44 2007
New Revision: 551619

URL: http://svn.apache.org/viewvc?view=rev&rev=551619
Log:
https://issues.apache.org/activemq/browse/AMQCPP-93

Adding some more unit tests

Modified:
    activemq/activemq-cpp/trunk/src/test/activemq/io/DataInputStreamTest.cpp
    activemq/activemq-cpp/trunk/src/test/activemq/io/DataInputStreamTest.h

Modified: activemq/activemq-cpp/trunk/src/test/activemq/io/DataInputStreamTest.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/test/activemq/io/DataInputStreamTest.cpp?view=diff&rev=551619&r1=551618&r2=551619
==============================================================================
--- activemq/activemq-cpp/trunk/src/test/activemq/io/DataInputStreamTest.cpp (original)
+++ activemq/activemq-cpp/trunk/src/test/activemq/io/DataInputStreamTest.cpp Thu Jun 28 09:45:44 2007
@@ -19,3 +19,168 @@
 
 CPPUNIT_TEST_SUITE_REGISTRATION( activemq::io::DataInputStreamTest );
 
+using namespace std;
+using namespace activemq;
+using namespace activemq::io;
+using namespace activemq::util;
+
+void DataInputStreamTest::test(){
+
+    unsigned char buffer[30];
+    int ix = 0;
+
+    unsigned char byteVal = (unsigned char)'T';
+    unsigned short shortVal = 5;
+    unsigned int intVal = 10000;
+    unsigned long long longVal = 1000000000;
+    float floatVal = 10.0f;
+    double doubleVal = 100.0;
+    unsigned char arrayVal[3] = {
+        'a', 'b', 'c'
+    };
+
+    int size = sizeof(char);
+    memcpy( (char*)(buffer+ix), (char*)&byteVal, size );
+    ix += size;
+
+    size = sizeof(unsigned short);
+    unsigned short tempShort = util::Endian::byteSwap(shortVal);
+    memcpy( (char*)(buffer+ix), (char*)&tempShort, size );
+    ix += size;
+
+    size = sizeof(unsigned int);
+    unsigned int tempInt = util::Endian::byteSwap(intVal);
+    memcpy( (char*)(buffer+ix), (char*)&tempInt, size );
+    ix += size;
+
+    size = sizeof(unsigned long long);
+    unsigned long long tempLong = util::Endian::byteSwap(longVal);
+    memcpy( (char*)(buffer+ix), (char*)&tempLong, size );
+    ix += size;
+
+    size = sizeof(float);
+    float tempFloat = util::Endian::byteSwap(floatVal);
+    memcpy( (char*)(buffer+ix), (char*)&tempFloat, size );
+    ix += size;
+
+    size = sizeof(double);
+    double tempDouble = util::Endian::byteSwap(doubleVal);
+    memcpy( (char*)(buffer+ix), (char*)&tempDouble, size );
+    ix += size;
+
+    size = 3;
+    memcpy( (char*)(buffer+ix), (char*)&arrayVal, size );
+    ix += size;
+
+    // Create the stream with the buffer we just wrote to.
+    ByteArrayInputStream myStream( buffer, 30 );
+    DataInputStream reader( &myStream );
+
+    byteVal = reader.readByte();
+    //std::cout << "Byte Value = " << byteVal << std::endl;
+    CPPUNIT_ASSERT( byteVal == (unsigned char)'T' );
+
+    shortVal = reader.readShort();
+    //std::cout << "short Value = " << shortVal << std::endl;
+    CPPUNIT_ASSERT( shortVal == 5 );
+
+    intVal = reader.readInt();
+    //std::cout << "int Value = " << intVal << std::endl;
+    CPPUNIT_ASSERT( intVal == 10000 );
+
+    longVal = reader.readLong();
+    //std::cout << "long long Value = " << longVal << std::endl;
+    CPPUNIT_ASSERT( longVal == 1000000000 );
+
+    floatVal = reader.readFloat();
+    //std::cout << "float Value = " << floatVal << std::endl;
+    CPPUNIT_ASSERT( floatVal == 10.0f );
+
+    doubleVal = reader.readDouble();
+    //std::cout << "double Value = " << doubleVal << std::endl;
+    CPPUNIT_ASSERT( doubleVal == 100.0 );
+
+    reader.read( arrayVal, 0, 3 );
+    //std::cout << "char[0] Value = " << (int)arrayVal[0] << std::endl;
+    CPPUNIT_ASSERT( arrayVal[0] == 'a' );
+    //std::cout << "char[1] Value = " << (int)arrayVal[1] << std::endl;
+    CPPUNIT_ASSERT( arrayVal[1] == 'b' );
+    //std::cout << "char[2] Value = " << (int)arrayVal[2] << std::endl;
+    CPPUNIT_ASSERT( arrayVal[2] == 'c' );
+}
+
+void DataInputStreamTest::testString() {
+
+    std::string data1 = "This is a Test";
+    std::string data2 = "of the readString method";
+    std::string data3 = "This one should fail";
+
+    std::vector<unsigned char> buffer;
+
+    buffer.insert( buffer.begin(), data1.begin(), data1.end() );
+    buffer.push_back( '\0' );
+    buffer.insert( buffer.end(), data2.begin(), data2.end() );
+    buffer.push_back( '\0' );
+    buffer.insert( buffer.end(), data3.begin(), data3.end() );
+
+    // Create the stream with the buffer we just wrote to.
+    ByteArrayInputStream myStream( buffer );
+    DataInputStream reader( &myStream );
+
+    std::string result1 = reader.readString();
+    std::string result2 = reader.readString();
+
+    CPPUNIT_ASSERT( result1 == data1 );
+    CPPUNIT_ASSERT( result2 == data2 );
+
+    try{
+        std::string result3 = reader.readString();
+        CPPUNIT_ASSERT( false );
+    } catch(...){
+        CPPUNIT_ASSERT( true );
+    }
+}
+
+void DataInputStreamTest::testUTF() {
+
+    std::string data1 = "This is a Test";
+    std::string data2 = "of the readString method";
+    std::string data3 = "This one should fail";
+
+    char sizeData[sizeof(short)] = {0};
+    short tempShort = 0;
+
+    std::vector<unsigned char> buffer;
+
+    tempShort = util::Endian::byteSwap( ((unsigned short)data1.size()) );
+    memcpy( sizeData, (char*)&tempShort, sizeof( short ) );
+    buffer.insert( buffer.end(), sizeData, sizeData + sizeof(short) );
+    buffer.insert( buffer.end(), data1.begin(), data1.end() );
+
+    tempShort = util::Endian::byteSwap( ((unsigned short)data2.size()) );
+    memcpy( sizeData, (char*)&tempShort, sizeof( short ) );
+    buffer.insert( buffer.end(), sizeData, sizeData + sizeof(short) );
+    buffer.insert( buffer.end(), data2.begin(), data2.end() );
+
+    tempShort = util::Endian::byteSwap( (unsigned short)(data3.size() + 10 ) );
+    memcpy( sizeData, (char*)&tempShort, sizeof( short ) );
+    buffer.insert( buffer.end(), sizeData, sizeData + sizeof(short) );
+    buffer.insert( buffer.end(), data3.begin(), data3.end() );
+
+    // Create the stream with the buffer we just wrote to.
+    ByteArrayInputStream myStream( buffer );
+    DataInputStream reader( &myStream );
+
+    std::string result1 = reader.readUTF();
+    std::string result2 = reader.readUTF();
+
+    CPPUNIT_ASSERT( result1 == data1 );
+    CPPUNIT_ASSERT( result2 == data2 );
+
+    try{
+        std::string result3 = reader.readUTF();
+        CPPUNIT_ASSERT( false );
+    } catch(...){
+        CPPUNIT_ASSERT( true );
+    }
+}

Modified: activemq/activemq-cpp/trunk/src/test/activemq/io/DataInputStreamTest.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/test/activemq/io/DataInputStreamTest.h?view=diff&rev=551619&r1=551618&r2=551619
==============================================================================
--- activemq/activemq-cpp/trunk/src/test/activemq/io/DataInputStreamTest.h (original)
+++ activemq/activemq-cpp/trunk/src/test/activemq/io/DataInputStreamTest.h Thu Jun 28 09:45:44 2007
@@ -35,105 +35,24 @@
 
 namespace activemq{
 namespace io{
-    
+
     class DataInputStreamTest : public CppUnit::TestFixture {
-        
-      CPPUNIT_TEST_SUITE( DataInputStreamTest );
-      CPPUNIT_TEST( test );
-      CPPUNIT_TEST_SUITE_END();
-            
+
+        CPPUNIT_TEST_SUITE( DataInputStreamTest );
+        CPPUNIT_TEST( test );
+        CPPUNIT_TEST( testString );
+        CPPUNIT_TEST( testUTF );
+        CPPUNIT_TEST_SUITE_END();
+
     public:
-    
+
         virtual ~DataInputStreamTest(){}
-        virtual void setUp(){}; 
-        virtual void tearDown(){};
-        void test(){
-            
-            unsigned char buffer[30];         
-            int ix = 0; 
-            
-            unsigned char byteVal = (unsigned char)'T';
-            unsigned short shortVal = 5;
-            unsigned int intVal = 10000;
-            unsigned long long longVal = 1000000000;
-            float floatVal = 10.0f;
-            double doubleVal = 100.0;
-            unsigned char arrayVal[3] = {
-                'a', 'b', 'c'
-            };
-            
-            int size = sizeof(char);
-            memcpy( (char*)(buffer+ix), (char*)&byteVal, size );
-            ix += size;
-            
-            size = sizeof(unsigned short);
-            unsigned short tempShort = util::Endian::byteSwap(shortVal);
-            memcpy( (char*)(buffer+ix), (char*)&tempShort, size );
-            ix += size;
-            
-            size = sizeof(unsigned int);
-            unsigned int tempInt = util::Endian::byteSwap(intVal);
-            memcpy( (char*)(buffer+ix), (char*)&tempInt, size );
-            ix += size;
-            
-            size = sizeof(unsigned long long);
-            unsigned long long tempLong = util::Endian::byteSwap(longVal);
-            memcpy( (char*)(buffer+ix), (char*)&tempLong, size );
-            ix += size;
-
-            size = sizeof(float);
-            float tempFloat = util::Endian::byteSwap(floatVal);
-            memcpy( (char*)(buffer+ix), (char*)&tempFloat, size );
-            ix += size;
-
-            size = sizeof(double);
-            double tempDouble = util::Endian::byteSwap(doubleVal);
-            memcpy( (char*)(buffer+ix), (char*)&tempDouble, size );          
-            ix += size;
-            
-            size = 3;
-            memcpy( (char*)(buffer+ix), (char*)&arrayVal, size );
-            ix += size;
-
-            // Create the stream with the buffer we just wrote to.
-            ByteArrayInputStream myStream( buffer, 30 );
-            DataInputStream reader( &myStream );
-            
-            byteVal = reader.readByte();
-            //std::cout << "Byte Value = " << byteVal << std::endl;
-            CPPUNIT_ASSERT( byteVal == (unsigned char)'T' );
-            
-            shortVal = reader.readShort();
-            //std::cout << "short Value = " << shortVal << std::endl;
-            CPPUNIT_ASSERT( shortVal == 5 );
-            
-            intVal = reader.readInt();
-            //std::cout << "int Value = " << intVal << std::endl;
-            CPPUNIT_ASSERT( intVal == 10000 );
-            
-            longVal = reader.readLong();
-            //std::cout << "long long Value = " << longVal << std::endl;
-            CPPUNIT_ASSERT( longVal == 1000000000 );
-            
-            floatVal = reader.readFloat();
-            //std::cout << "float Value = " << floatVal << std::endl;
-            CPPUNIT_ASSERT( floatVal == 10.0f );
-            
-            doubleVal = reader.readDouble();
-            //std::cout << "double Value = " << doubleVal << std::endl;
-            CPPUNIT_ASSERT( doubleVal == 100.0 );
-            
-            reader.read( arrayVal, 0, 3 );
-            //std::cout << "char[0] Value = " << (int)arrayVal[0] << std::endl;
-            CPPUNIT_ASSERT( arrayVal[0] == 'a' );
-            //std::cout << "char[1] Value = " << (int)arrayVal[1] << std::endl;
-            CPPUNIT_ASSERT( arrayVal[1] == 'b' );
-            //std::cout << "char[2] Value = " << (int)arrayVal[2] << std::endl;
-            CPPUNIT_ASSERT( arrayVal[2] == 'c' );
-        }
+        void test();
+        void testString();
+        void testUTF();
 
     };
-    
+
 }}
 
 #endif /*ACTIVEMQ_IO_DATAINPUTSTREAMTEST_H_*/