You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by nm...@apache.org on 2006/12/15 02:47:19 UTC

svn commit: r487422 [2/2] - in /incubator/activemq/activemq-cpp/trunk/activemq-cpp/src: main/ main/activemq/connector/openwire/commands/ main/activemq/connector/stomp/commands/ main/activemq/io/ main/activemq/network/ main/cms/ test/activemq/connector/...

Modified: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/stomp/commands/BytesMessageCommandTest.h
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/stomp/commands/BytesMessageCommandTest.h?view=diff&rev=487422&r1=487421&r2=487422
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/stomp/commands/BytesMessageCommandTest.h (original)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/stomp/commands/BytesMessageCommandTest.h Thu Dec 14 17:47:17 2006
@@ -34,6 +34,8 @@
     {
         CPPUNIT_TEST_SUITE( BytesMessageCommandTest );
         CPPUNIT_TEST( test );
+        CPPUNIT_TEST( testReadOnly );
+        CPPUNIT_TEST( testWriteOnly );
         CPPUNIT_TEST_SUITE_END();
 
     protected:
@@ -42,8 +44,8 @@
         {
         public:
         
-            TestAckHandler(void) { wasAcked = false; }
-            virtual ~TestAckHandler(void) {}
+            TestAckHandler() { wasAcked = false; }
+            virtual ~TestAckHandler() {}
             
             virtual void acknowledgeMessage( const core::ActiveMQMessage* message)
                 throw ( cms::CMSException ) 
@@ -62,7 +64,7 @@
     	BytesMessageCommandTest() {}
     	virtual ~BytesMessageCommandTest() {}
 
-        void test(void)
+        void test()
         {
             TestAckHandler ackHandler;
             BytesMessageCommand cmd;
@@ -196,6 +198,201 @@
                             (const char*)cmd5->getBodyBytes() );
 
             delete cmd2;
+        }
+        
+        void testReadOnly(){
+            
+            StompFrame* frame = new StompFrame();
+            frame->setCommand( CommandConstants::toString( CommandConstants::MESSAGE ) );
+            frame->getProperties().setProperty( CommandConstants::toString( CommandConstants::HEADER_DESTINATION ), 
+                (std::string)CommandConstants::topicPrefix + "mytopic" );
+            
+            // write a bunch of values to the frame's body.
+            io::ByteArrayOutputStream os( frame->getBody() );
+            io::DataOutputStream dos(&os);
+            dos.writeBoolean( true );
+            dos.writeByte( 1 );
+            dos.writeChar( 'a' );
+            dos.writeFloat( 2.0f );
+            dos.writeDouble( 3.0 );
+            dos.writeShort( 4 );
+            dos.writeUnsignedShort( 5 );
+            dos.writeInt( 6 );
+            dos.writeLong( 7LL );
+            dos.writeBytes( "hello world" );
+            
+            // Assign the frame to the bytes message.
+            BytesMessageCommand cmd(frame);
+            
+            // First, verify that we can't write (read-only)
+            
+            try{
+                cmd.setBodyBytes( (unsigned char*)"test", 5 );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeBoolean( true );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeByte( 2 );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeBytes( std::vector<unsigned char>() );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeBytes( (unsigned char*)"test", 0, 5 );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeChar( 'a' );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeFloat( 1.0f );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeDouble( 2.0 );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeUnsignedShort( 3 );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeShort( 4 );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeInt( 5 );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeLong( 6LL );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.writeString( "test" );
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            // Now, verify that all the reads work properly
+            
+            CPPUNIT_ASSERT( cmd.readBoolean() == true );
+            CPPUNIT_ASSERT( cmd.readByte() == 1 );
+            CPPUNIT_ASSERT( cmd.readChar() == 'a' );
+            CPPUNIT_ASSERT( cmd.readFloat() == 2.0f );
+            CPPUNIT_ASSERT( cmd.readDouble() == 3.0 );
+            CPPUNIT_ASSERT( cmd.readShort() == 4 );
+            CPPUNIT_ASSERT( cmd.readUnsignedShort() == 5 );
+            CPPUNIT_ASSERT( cmd.readInt() == 6 );
+            CPPUNIT_ASSERT( cmd.readLong() == 7LL );
+            CPPUNIT_ASSERT( cmd.readString() == "hello world" );
+        }
+        
+        void testWriteOnly(){
+            
+            BytesMessageCommand cmd;
+            
+            // First, verify that we can't read (write-only)
+            
+            try{
+                cmd.readBoolean();
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.readByte();
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                std::vector<unsigned char> buf;
+                cmd.readBytes(buf);
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.readChar();
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.readFloat();
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.readDouble();
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.readUnsignedShort();
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.readShort();
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.readInt();
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.readLong();
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            try{
+                cmd.readString();
+                CPPUNIT_ASSERT( false );
+            } catch( exceptions::IllegalStateException& e ){}
+            
+            // Now, verify that all the writes work properly
+            
+            cmd.writeBoolean( true );
+            cmd.writeByte( 1 );
+            cmd.writeChar( 'a' );
+            cmd.writeFloat( 2.0f );
+            cmd.writeDouble( 3.0 );
+            cmd.writeShort( 4 );
+            cmd.writeUnsignedShort( 5 );
+            cmd.writeInt( 6 );
+            cmd.writeLong( 7LL );
+            cmd.writeString( "hello world" );
+            
+            // Switch to read-only mode.
+            cmd.reset();
+            
+            CPPUNIT_ASSERT( cmd.readBoolean() == true );
+            CPPUNIT_ASSERT( cmd.readByte() == 1 );
+            CPPUNIT_ASSERT( cmd.readChar() == 'a' );
+            CPPUNIT_ASSERT( cmd.readFloat() == 2.0f );
+            CPPUNIT_ASSERT( cmd.readDouble() == 3.0 );
+            CPPUNIT_ASSERT( cmd.readShort() == 4 );
+            CPPUNIT_ASSERT( cmd.readUnsignedShort() == 5 );
+            CPPUNIT_ASSERT( cmd.readInt() == 6 );
+            CPPUNIT_ASSERT( cmd.readLong() == 7LL );
+            CPPUNIT_ASSERT( cmd.readString() == "hello world" );
         }
 
     };

Modified: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/BufferedInputStreamTest.h
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/BufferedInputStreamTest.h?view=diff&rev=487422&r1=487421&r2=487422
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/BufferedInputStreamTest.h (original)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/BufferedInputStreamTest.h Thu Dec 14 17:47:17 2006
@@ -59,7 +59,7 @@
 				
 				return data.c_str()[pos++];
 			}
-			virtual int read( unsigned char* buffer, const int bufferSize ) throw (IOException){
+			virtual int read( unsigned char* buffer, int bufferSize ) throw (IOException){
 				unsigned int numToRead = std::min( bufferSize, available() );
 				
 				const char* str = data.c_str();

Modified: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/BufferedOutputStreamTest.h
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/BufferedOutputStreamTest.h?view=diff&rev=487422&r1=487421&r2=487422
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/BufferedOutputStreamTest.h (original)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/BufferedOutputStreamTest.h Thu Dec 14 17:47:17 2006
@@ -50,7 +50,7 @@
 			
 			const char* getBuffer() const{ return buffer; }
 			
-			virtual void write( const unsigned char c ) throw (IOException){
+			virtual void write( unsigned char c ) throw (IOException){
 				if( pos >= 100 ){
 					throw IOException();
 				}
@@ -58,7 +58,7 @@
 				buffer[pos++] = c;
 			}
 		
-			virtual void write( const unsigned char* buffer, const int len ) throw (IOException){
+			virtual void write( const unsigned char* buffer, int len ) throw (IOException){
 				
 				if( (pos + len) > 100 ){
 					throw IOException();

Modified: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/IOTransportTest.h
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/IOTransportTest.h?view=diff&rev=487422&r1=487421&r2=487422
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/IOTransportTest.h (original)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/IOTransportTest.h Thu Dec 14 17:47:17 2006
@@ -28,7 +28,7 @@
 #include <activemq/transport/Command.h>
 #include <activemq/transport/TransportExceptionListener.h>
 #include <activemq/concurrent/Concurrent.h>
-#include <activemq/io/ByteArrayInputStream.h>
+#include <activemq/io/BlockingByteArrayInputStream.h>
 #include <activemq/io/ByteArrayOutputStream.h>
 #include <activemq/concurrent/Thread.h>
 #include <activemq/concurrent/Mutex.h>
@@ -200,7 +200,7 @@
         // transport without any exceptions.
         void testStartClose(){
             
-            io::ByteArrayInputStream is;
+            io::BlockingByteArrayInputStream is;
             io::ByteArrayOutputStream os;
             MyCommandListener listener;
             MyCommandReader reader;
@@ -223,7 +223,7 @@
         
         void testRead(){
             
-            io::ByteArrayInputStream is;
+            io::BlockingByteArrayInputStream is;
             io::ByteArrayOutputStream os;
             MyCommandListener listener;
             MyCommandReader reader;
@@ -259,7 +259,7 @@
         
         void testWrite(){
             
-            io::ByteArrayInputStream is;
+            io::BlockingByteArrayInputStream is;
             io::ByteArrayOutputStream os;
             MyCommandListener listener;
             MyCommandReader reader;
@@ -301,7 +301,7 @@
         
         void testException(){
             
-            io::ByteArrayInputStream is;
+            io::BlockingByteArrayInputStream is;
             io::ByteArrayOutputStream os;
             MyCommandListener listener;
             MyCommandReader reader;