Package org.apache.ftpserver.ftplet

Source Code of org.apache.ftpserver.ftplet.FtpLetContainerTestTemplate

/*
* 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.ftpserver.ftplet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import junit.framework.TestCase;

import org.apache.ftpserver.FtpRequestImpl;
import org.apache.ftpserver.FtpSessionImpl;


public abstract class FtpLetContainerTestTemplate extends TestCase {

    private FtpletContainer container = createFtpletContainer();
    private final List<String> calls = new ArrayList<String>();
   
    protected void setUp() throws Exception {
        MockFtplet.callback = new MockFtpletCallback();
        MockFtpletCallback.returnValue = FtpletEnum.RET_DEFAULT;
     }
   
    protected abstract FtpletContainer createFtpletContainer();
   
    public void testAddAndGetFtplet() {
        MockFtplet ftplet1 = new MockFtplet();
        MockFtplet ftplet2 = new MockFtplet();
       
        assertNull(container.getFtplet("ftplet1"));
        assertNull(container.getFtplet("ftplet2"));
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        assertSame(ftplet1, container.getFtplet("ftplet1"));
        assertSame(ftplet2, container.getFtplet("ftplet2"));
    }
   
    public void testAddFtpletWithDuplicateName() {
        MockFtplet ftplet1 = new MockFtplet();
        MockFtplet ftplet2 = new MockFtplet();
       
        assertNull(container.getFtplet("ftplet1"));
       
        container.addFtplet("ftplet1", ftplet1);
       
        try {
            container.addFtplet("ftplet1", ftplet2);
            fail("IllegalArgumentException must be thrown");
        } catch(IllegalArgumentException e) {
            // ok
        }
       
        assertSame(ftplet1, container.getFtplet("ftplet1"));
    }

    public void testRemoveFtplet() {
        MockFtplet ftplet1 = new MockFtplet();
        MockFtplet ftplet2 = new MockFtplet();
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        assertSame(ftplet1, container.getFtplet("ftplet1"));
        assertSame(ftplet2, container.getFtplet("ftplet2"));
       
        assertSame(ftplet1, container.removeFtplet("ftplet1"));
       
        assertNull(container.getFtplet("ftplet1"));
        assertSame(ftplet2, container.getFtplet("ftplet2"));
       
        assertNull(container.removeFtplet("ftplet1"));
    }
   
    public void testOnConnect() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onConnect(FtpSession session) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onConnect(session);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onConnect(FtpSession session) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onConnect(session);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onConnect(new FtpSessionImpl(null));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnDisconnect() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onDisconnect(FtpSession session) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onDisconnect(session);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onDisconnect(FtpSession session) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onDisconnect(session);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onDisconnect(new FtpSessionImpl(null));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnLogin() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onLogin(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onLogin(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onLogin(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onLogin(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onLogin(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnDeleteStart() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onDeleteStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onDeleteStart(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onDeleteStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onDeleteStart(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onDeleteStart(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }

    public void testOnDeleteEnd() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onDeleteEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onDeleteEnd(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onDeleteEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onDeleteEnd(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onDeleteEnd(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }

    public void testOnUploadStart() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onUploadStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onUploadStart(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onUploadStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onUploadStart(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onUploadStart(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }

    public void testOnUploadEnd() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onUploadEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onUploadEnd(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onUploadEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onUploadEnd(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onUploadEnd(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }

    public void testOnDownloadStart() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onDownloadStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onDownloadStart(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onDownloadStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onDownloadStart(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onDownloadStart(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnDownloadEnd() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onDownloadEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onDownloadEnd(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onDownloadEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onDownloadEnd(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onDownloadEnd(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnRmdirStart() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onRmdirStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onRmdirStart(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onRmdirStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onRmdirStart(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onRmdirStart(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnRmdirEnd() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onRmdirEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onRmdirEnd(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onRmdirEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onRmdirEnd(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onRmdirEnd(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnMkdirStart() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onMkdirStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onMkdirStart(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onMkdirStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onMkdirStart(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onMkdirStart(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }

    public void testOnMkdirEnd() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onMkdirEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onMkdirEnd(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onMkdirEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onMkdirEnd(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onMkdirEnd(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnAppendStart() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onAppendStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onAppendStart(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onAppendStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onAppendStart(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onAppendStart(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnAppendEnd() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onAppendEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onAppendEnd(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onAppendEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onAppendEnd(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onAppendEnd(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnUploadUniqueStart() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onUploadUniqueStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onUploadUniqueStart(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onUploadUniqueStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onUploadUniqueStart(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onUploadUniqueStart(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }

    public void testOnUploadUniqueEnd() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onUploadUniqueEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onUploadUniqueEnd(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onUploadUniqueEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onUploadUniqueEnd(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onUploadUniqueEnd(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnRenameStart() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onRenameStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onRenameStart(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onRenameStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onRenameStart(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onRenameStart(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnRenameEnd() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onRenameEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onRenameEnd(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onRenameEnd(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onRenameEnd(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onRenameEnd(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
   
    public void testOnSite() throws FtpException, IOException {
        MockFtplet ftplet1 = new MockFtplet() {
            public FtpletEnum onSite(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet1");
                return super.onSite(session, request);
            }
        };
        MockFtplet ftplet2 = new MockFtplet() {
            public FtpletEnum onSite(FtpSession session, FtpRequest request) throws FtpException, IOException {
                calls.add("ftplet2");
                return super.onSite(session, request);
            }
        };
       
        container.addFtplet("ftplet1", ftplet1);
        container.addFtplet("ftplet2", ftplet2);
       
        container.onSite(new FtpSessionImpl(null), new FtpRequestImpl("foo"));
       
        assertEquals(2, calls.size());
        assertEquals("ftplet1", calls.get(0));
        assertEquals("ftplet2", calls.get(1));
    }
}
TOP

Related Classes of org.apache.ftpserver.ftplet.FtpLetContainerTestTemplate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.