1 package org.apache.activemq.blob; 2 3 import java.io.File ; 4 import java.io.InputStream ; 5 import java.io.FileWriter ; 6 import java.io.BufferedWriter ; 7 import java.net.URL ; 8 9 import junit.framework.TestCase; 10 11 import org.apache.activemq.ActiveMQConnectionFactory; 12 import org.apache.activemq.command.ActiveMQBlobMessage; 13 import org.apache.activemq.command.MessageId; 14 15 public class DefaultBlobUploadStrategyTest extends TestCase { 16 17 private static final String FILESERVER_URL = "http://localhost:8080/"; 18 private static final String URI = "vm://localhost?jms.blobTransferPolicy.defaultUploadUrl=http://localhost:8080/"; 19 20 public static void main(String [] args) { 21 junit.textui.TestRunner.run(DefaultBlobUploadStrategyTest.class); 22 } 23 24 public void testDummy() throws Exception { 25 26 } 27 28 public void DISABLED_UNTIL_WE_EMBED_JETTY_testUploadViaDefaultBlobUploadStrategy() throws Exception { 29 File file = File.createTempFile("amq-data-file-", ".dat"); 31 BufferedWriter writer = new BufferedWriter (new FileWriter (file)); 33 writer.append("Hello World!"); 34 writer.close(); 35 36 ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(URI); 37 BlobTransferPolicy policy = factory.getBlobTransferPolicy(); 38 39 ActiveMQBlobMessage msg = new ActiveMQBlobMessage(); 40 msg.setMessageId(new MessageId()); 41 42 DefaultBlobUploadStrategy strategy = new DefaultBlobUploadStrategy(policy); 44 strategy.uploadFile(msg, file); 45 46 msg.setURL(new URL (FILESERVER_URL + msg.getMessageId())); 48 49 InputStream in = msg.getInputStream(); 50 long bytesRead = 0; 51 byte[] buffer = new byte[1024*1024]; 52 53 while (true) { 54 int c = in.read(buffer); 55 if (c == -1) { 56 break; 57 } 58 bytesRead += c; 59 } 60 in.close(); 61 TestCase.assertTrue(bytesRead == file.length()); 62 63 strategy.deleteFile(msg); 65 } 66 67 } 68 | Popular Tags |