Modified: james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/storage/SimpleTempStorageTest.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/storage/SimpleTempStorageTest.java?rev=719847&r1=719846&r2=719847&view=diff ============================================================================== --- james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/storage/SimpleTempStorageTest.java (original) +++ james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/storage/SimpleTempStorageTest.java Sat Nov 22 05:29:10 2008 @@ -1,132 +1,133 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.mime4j.message.storage; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -import org.apache.james.mime4j.message.storage.SimpleTempStorage; -import org.apache.james.mime4j.message.storage.TempFile; -import org.apache.james.mime4j.message.storage.TempPath; - -import junit.framework.TestCase; - -/** - * - * - * - * @version $Id: SimpleTempStorageTest.java,v 1.2 2004/10/02 12:41:12 ntherning Exp $ - */ -public class SimpleTempStorageTest extends TestCase { - - public void testGetRootTempPath() { - SimpleTempStorage man = new SimpleTempStorage(); - TempPath path = man.getRootTempPath(); - File tmpdir = new File(System.getProperty("java.io.tmpdir")); - assertEquals(tmpdir.getAbsolutePath(), path.getAbsolutePath()); - } - - public void testCreateTempPath() throws IOException { - SimpleTempStorage man = new SimpleTempStorage(); - TempPath path = man.getRootTempPath().createTempPath(); - File tmpdir = new File(System.getProperty("java.io.tmpdir")); - assertTrue(path.getAbsolutePath().startsWith(tmpdir.getAbsolutePath())); - - String fileName = path.getAbsolutePath().substring( - path.getAbsolutePath().lastIndexOf(File.separatorChar) + 1); - assertTrue("Unexpected chars in file name " + fileName, - fileName.matches("^[0-9]+$")); - assertTrue("Temp dir doesn't exist", - new File(path.getAbsolutePath()).exists()); - } - - public void testCreateTempPathString() throws IOException { - SimpleTempStorage man = new SimpleTempStorage(); - TempPath path = man.getRootTempPath().createTempPath("test_prefix"); - File tmpdir = new File(System.getProperty("java.io.tmpdir"), - "test_prefix"); - assertTrue(path.getAbsolutePath().startsWith(tmpdir.getAbsolutePath())); - - String fileName = path.getAbsolutePath().substring( - path.getAbsolutePath().lastIndexOf(File.separatorChar) + 1); - assertTrue("Unexpected chars in file name " + fileName, - fileName.matches("^test_prefix[0-9]+$")); - assertTrue("Temp dir doesn't exist", - new File(path.getAbsolutePath()).exists()); - } - - public void testCreateTempFile() throws IOException { - SimpleTempStorage man = new SimpleTempStorage(); - TempPath path = man.getRootTempPath().createTempPath(); - TempFile file = path.createTempFile(); - assertTrue(file.getAbsolutePath().startsWith(path.getAbsolutePath())); - - String fileName = file.getAbsolutePath().substring( - file.getAbsolutePath().lastIndexOf(File.separatorChar) + 1); - assertTrue("Unexpected chars in file name " + fileName, - fileName.matches("^[0-9]+\\.tmp$")); - assertTrue("Temp file doesn't exist", - new File(file.getAbsolutePath()).exists()); - - String s = "A short string"; - OutputStream out = file.getOutputStream(); - out.write(s.getBytes()); - out.close(); - - byte[] buffer = new byte[s.length() * 2]; - InputStream in = file.getInputStream(); - int i = 0; - for (int data; (data = in.read()) != -1; i++) { - buffer[i] = (byte) data; - } - in.close(); - assertTrue(s.length() == i); - assertEquals(s, new String(buffer, 0, i)); - } - - public void testCreateTempFileStringString() throws IOException { - SimpleTempStorage man = new SimpleTempStorage(); - TempPath path = man.getRootTempPath().createTempPath(); - TempFile file = path.createTempFile("test_prefix", ".suffix"); - assertTrue(file.getAbsolutePath().startsWith(path.getAbsolutePath())); - - String fileName = file.getAbsolutePath().substring( - file.getAbsolutePath().lastIndexOf(File.separatorChar) + 1); - assertTrue("Unexpected chars in file name " + fileName, - fileName.matches("^test_prefix[0-9]+\\.suffix$")); - assertTrue("Temp file doesn't exist", - new File(file.getAbsolutePath()).exists()); - } - - public void testDeleteTempFile() throws IOException { - SimpleTempStorage man = new SimpleTempStorage(); - TempPath path = man.getRootTempPath().createTempPath(); - TempFile tempFile = path.createTempFile("test_prefix", ".suffix"); - - File backingFile = new File(tempFile.getAbsolutePath()); - assertTrue(backingFile.exists()); - - tempFile.delete(); - assertFalse(backingFile.exists()); - } - -} +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ + +package org.apache.james.mime4j.message.storage; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import org.apache.james.mime4j.message.storage.SimpleTempStorage; +import org.apache.james.mime4j.message.storage.TempFile; +import org.apache.james.mime4j.message.storage.TempPath; + +import junit.framework.TestCase; + +/** + * + * + * + * @version $Id: SimpleTempStorageTest.java,v 1.2 2004/10/02 12:41:12 ntherning Exp $ + */ [EMAIL PROTECTED]("deprecation") +public class SimpleTempStorageTest extends TestCase { + + public void testGetRootTempPath() { + SimpleTempStorage man = new SimpleTempStorage(); + TempPath path = man.getRootTempPath(); + File tmpdir = new File(System.getProperty("java.io.tmpdir")); + assertEquals(tmpdir.getAbsolutePath(), path.getAbsolutePath()); + } + + public void testCreateTempPath() throws IOException { + SimpleTempStorage man = new SimpleTempStorage(); + TempPath path = man.getRootTempPath().createTempPath(); + File tmpdir = new File(System.getProperty("java.io.tmpdir")); + assertTrue(path.getAbsolutePath().startsWith(tmpdir.getAbsolutePath())); + + String fileName = path.getAbsolutePath().substring( + path.getAbsolutePath().lastIndexOf(File.separatorChar) + 1); + assertTrue("Unexpected chars in file name " + fileName, + fileName.matches("^[0-9]+$")); + assertTrue("Temp dir doesn't exist", + new File(path.getAbsolutePath()).exists()); + } + + public void testCreateTempPathString() throws IOException { + SimpleTempStorage man = new SimpleTempStorage(); + TempPath path = man.getRootTempPath().createTempPath("test_prefix"); + File tmpdir = new File(System.getProperty("java.io.tmpdir"), + "test_prefix"); + assertTrue(path.getAbsolutePath().startsWith(tmpdir.getAbsolutePath())); + + String fileName = path.getAbsolutePath().substring( + path.getAbsolutePath().lastIndexOf(File.separatorChar) + 1); + assertTrue("Unexpected chars in file name " + fileName, + fileName.matches("^test_prefix[0-9]+$")); + assertTrue("Temp dir doesn't exist", + new File(path.getAbsolutePath()).exists()); + } + + public void testCreateTempFile() throws IOException { + SimpleTempStorage man = new SimpleTempStorage(); + TempPath path = man.getRootTempPath().createTempPath(); + TempFile file = path.createTempFile(); + assertTrue(file.getAbsolutePath().startsWith(path.getAbsolutePath())); + + String fileName = file.getAbsolutePath().substring( + file.getAbsolutePath().lastIndexOf(File.separatorChar) + 1); + assertTrue("Unexpected chars in file name " + fileName, + fileName.matches("^[0-9]+\\.tmp$")); + assertTrue("Temp file doesn't exist", + new File(file.getAbsolutePath()).exists()); + + String s = "A short string"; + OutputStream out = file.getOutputStream(); + out.write(s.getBytes()); + out.close(); + + byte[] buffer = new byte[s.length() * 2]; + InputStream in = file.getInputStream(); + int i = 0; + for (int data; (data = in.read()) != -1; i++) { + buffer[i] = (byte) data; + } + in.close(); + assertTrue(s.length() == i); + assertEquals(s, new String(buffer, 0, i)); + } + + public void testCreateTempFileStringString() throws IOException { + SimpleTempStorage man = new SimpleTempStorage(); + TempPath path = man.getRootTempPath().createTempPath(); + TempFile file = path.createTempFile("test_prefix", ".suffix"); + assertTrue(file.getAbsolutePath().startsWith(path.getAbsolutePath())); + + String fileName = file.getAbsolutePath().substring( + file.getAbsolutePath().lastIndexOf(File.separatorChar) + 1); + assertTrue("Unexpected chars in file name " + fileName, + fileName.matches("^test_prefix[0-9]+\\.suffix$")); + assertTrue("Temp file doesn't exist", + new File(file.getAbsolutePath()).exists()); + } + + public void testDeleteTempFile() throws IOException { + SimpleTempStorage man = new SimpleTempStorage(); + TempPath path = man.getRootTempPath().createTempPath(); + TempFile tempFile = path.createTempFile("test_prefix", ".suffix"); + + File backingFile = new File(tempFile.getAbsolutePath()); + assertTrue(backingFile.exists()); + + tempFile.delete(); + assertFalse(backingFile.exists()); + } + +}
Added: james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/storage/StorageProviderTest.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/storage/StorageProviderTest.java?rev=719847&view=auto ============================================================================== --- james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/storage/StorageProviderTest.java (added) +++ james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/storage/StorageProviderTest.java Sat Nov 22 05:29:10 2008 @@ -0,0 +1,121 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ + +package org.apache.james.mime4j.message.storage; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import org.apache.james.mime4j.decoder.CodecUtil; + +import junit.framework.TestCase; + +public class StorageProviderTest extends TestCase { + + public void testMemoryStorageProvider() throws Exception { + StorageProvider provider = new MemoryStorageProvider(); + + testReadWrite(provider, 0); + testReadWrite(provider, 1); + testReadWrite(provider, 1024); + + testDelete(provider); + } + + public void testTempFileStorageProvider() throws Exception { + StorageProvider provider = new TempFileStorageProvider(); + + testReadWrite(provider, 0); + testReadWrite(provider, 1); + testReadWrite(provider, 1024); + + testDelete(provider); + } + + public void testThresholdStorageProvider() throws Exception { + final int threshold = 500; + StorageProvider backend = new TempFileStorageProvider(); + StorageProvider provider = new ThresholdStorageProvider(backend, + threshold); + + testReadWrite(provider, 0); + testReadWrite(provider, 1); + testReadWrite(provider, threshold - 1); + testReadWrite(provider, threshold); + testReadWrite(provider, threshold + 1); + testReadWrite(provider, 2 * threshold); + + testDelete(provider); + } + + public void testCipherStorageProvider() throws Exception { + StorageProvider backend = new TempFileStorageProvider(); + StorageProvider provider = new CipherStorageProvider(backend); + + testReadWrite(provider, 0); + testReadWrite(provider, 1); + testReadWrite(provider, 1024); + + testDelete(provider); + } + + private void testReadWrite(StorageProvider provider, int size) + throws IOException { + byte[] data = createData(size); + assertEquals(size, data.length); + + Storage storage = provider.store(new ByteArrayInputStream(data)); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + CodecUtil.copy(storage.getInputStream(), out); + + byte[] result = out.toByteArray(); + + assertEquals(size, result.length); + for (int i = 0; i < size; i++) { + assertEquals(data[i], result[i]); + } + } + + private byte[] createData(int size) { + byte[] data = new byte[size]; + for (int i = 0; i < size; i++) { + data[i] = (byte) i; + } + return data; + } + + private void testDelete(StorageProvider provider) throws IOException { + Storage storage = provider.store(new ByteArrayInputStream( + createData(512))); + + storage.delete(); + + // getInputStream has to throw an IllegalStateException + try { + storage.getInputStream(); + fail(); + } catch (IllegalStateException expected) { + } + + // invoking delete a second time should not have any effect + storage.delete(); + } + +} --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
