Author: tpalsulich
Date: Mon Dec 29 20:47:39 2014
New Revision: 1648426

URL: http://svn.apache.org/r1648426
Log:
OODT-762. Migrate protocol/imaps test resources.

Added:
    oodt/trunk/protocol/imaps/src/test/java/
    oodt/trunk/protocol/imaps/src/test/java/org/
    oodt/trunk/protocol/imaps/src/test/java/org/apache/
    oodt/trunk/protocol/imaps/src/test/java/org/apache/oodt/
    oodt/trunk/protocol/imaps/src/test/java/org/apache/oodt/cas/
    oodt/trunk/protocol/imaps/src/test/java/org/apache/oodt/cas/protocol/
    oodt/trunk/protocol/imaps/src/test/java/org/apache/oodt/cas/protocol/imaps/
    
oodt/trunk/protocol/imaps/src/test/java/org/apache/oodt/cas/protocol/imaps/TestImapsProtocol.java
Removed:
    oodt/trunk/protocol/imaps/src/test/org/

Added: 
oodt/trunk/protocol/imaps/src/test/java/org/apache/oodt/cas/protocol/imaps/TestImapsProtocol.java
URL: 
http://svn.apache.org/viewvc/oodt/trunk/protocol/imaps/src/test/java/org/apache/oodt/cas/protocol/imaps/TestImapsProtocol.java?rev=1648426&view=auto
==============================================================================
--- 
oodt/trunk/protocol/imaps/src/test/java/org/apache/oodt/cas/protocol/imaps/TestImapsProtocol.java
 (added)
+++ 
oodt/trunk/protocol/imaps/src/test/java/org/apache/oodt/cas/protocol/imaps/TestImapsProtocol.java
 Mon Dec 29 20:47:39 2014
@@ -0,0 +1,112 @@
+/*
+ * 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.oodt.cas.protocol.imaps;
+
+//JDK imports
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+//Apache imports
+import org.apache.commons.io.FileUtils;
+
+//OODT imports
+import org.apache.oodt.cas.protocol.ProtocolFile;
+import org.apache.oodt.cas.protocol.auth.BasicAuthentication;
+import org.apache.oodt.cas.protocol.exceptions.ProtocolException;
+
+//GreenMail imports
+import com.icegreen.greenmail.util.DummySSLSocketFactory;
+import com.icegreen.greenmail.util.GreenMail;
+import com.icegreen.greenmail.util.GreenMailUtil;
+
+//JUnit imports
+import junit.framework.TestCase;
+
+/**
+ * Test class for {@link ImapsProtocol}.
+ * 
+ * @author bfoster
+ */
+public class TestImapsProtocol extends TestCase {
+
+       private GreenMail gMail;
+       private ImapsProtocol imapsProtocol;
+       
+       @Override
+       public void setUp() {
+       System.setProperty("mail.imaps.socketFactory.class", 
DummySSLSocketFactory.class.getCanonicalName());
+               System.setProperty("mail.imaps.socketFactory.fallback", 
"false");
+               gMail = new GreenMail();
+               gMail.setUser("[email protected]", "password");
+               gMail.start();
+               ImapsProtocol.port = gMail.getImaps().getPort();
+               imapsProtocol = new ImapsProtocol();
+               try {
+                       imapsProtocol.connect("localhost", new 
BasicAuthentication("[email protected]", "password"));
+               } catch (ProtocolException e) {
+                       fail("Failed to connect to GreenMail IMAPS server : " + 
e.getMessage());
+               }
+               assertEquals(1, ImapsProtocol.connectCalls);
+       }
+       
+       @Override
+       public void tearDown() {
+               gMail.stop();
+               try {
+                       imapsProtocol.close();
+               } catch (Exception e) {}
+               assertEquals(0, ImapsProtocol.connectCalls);
+       }
+       
+       public void testCDAndPWD() throws ProtocolException {
+               assertEquals("", imapsProtocol.pwd().getPath());
+               imapsProtocol.cd(new ProtocolFile("INBOX", true));
+               assertEquals("/INBOX", imapsProtocol.pwd().getPath());
+       }
+       
+       public void testLSandGET() throws ProtocolException, IOException {
+               GreenMailUtil.sendTextEmailSecureTest("[email protected]", 
"[email protected]", "Test Subject", "Test Body");
+               imapsProtocol.cd(new ProtocolFile("INBOX", true));
+               List<ProtocolFile> emails = imapsProtocol.ls();
+               assertEquals(1, emails.size());
+               File bogusFile = File.createTempFile("bogus", "bogus");
+               File tmpDir = new File(bogusFile.getParentFile(), 
"TestImapsProtocol");
+               bogusFile.delete();
+               tmpDir.mkdirs();
+               
+               File email = new File(tmpDir, "test-email");
+               imapsProtocol.get(emails.get(0), email);
+               String[] splitEmail = FileUtils.readFileToString(email, 
"UTF-8").split("\n");
+               assertEquals("From: [email protected]", splitEmail[0]);
+               assertEquals("To: [email protected]", splitEmail[1]);
+               assertEquals("Subject: Test Subject", splitEmail[2]);
+               // 3 is divider text (i.e. ----- ~ Message ~ -----)
+               assertEquals("Test Body", splitEmail[4]);
+               tmpDir.delete();
+       }
+       
+       public void testDelete() throws ProtocolException {
+               GreenMailUtil.sendTextEmailSecureTest("[email protected]", 
"[email protected]", "Test Subject", "Test Body");
+               imapsProtocol.cd(new ProtocolFile("INBOX", true));
+               List<ProtocolFile> emails = imapsProtocol.ls();
+               assertEquals(1, emails.size());
+               imapsProtocol.delete(emails.get(0));
+               emails = imapsProtocol.ls();
+               assertEquals(0, emails.size());
+       }
+}


Reply via email to