Package org.eclipse.ecf.tests.provider.filetransfer.scp

Source Code of org.eclipse.ecf.tests.provider.filetransfer.scp.SCPRetrieveTest

/****************************************************************************
* Copyright (c) 2004 Composent, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*    Composent, Inc. - initial API and implementation
*****************************************************************************/

package org.eclipse.ecf.tests.provider.filetransfer.scp;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.ecf.core.security.ConnectContextFactory;
import org.eclipse.ecf.filetransfer.IFileTransferListener;
import org.eclipse.ecf.filetransfer.IRetrieveFileTransferContainerAdapter;
import org.eclipse.ecf.filetransfer.events.*;
import org.eclipse.ecf.filetransfer.identity.FileIDFactory;

public class SCPRetrieveTest extends AbstractSCPTest {

  private String retrieveFile = System.getProperty("retrieveFile", "test.txt"); //$NON-NLS-1$ //$NON-NLS-2$
  private IRetrieveFileTransferContainerAdapter adapter = null;

  /*
   * (non-Javadoc)
   *
   * @see junit.framework.TestCase#setUp()
   */
  protected void setUp() throws Exception {
    super.setUp();
    adapter = (IRetrieveFileTransferContainerAdapter) baseContainer.getAdapter(IRetrieveFileTransferContainerAdapter.class);
    receiveStartEvents = new ArrayList();
    receiveDataEvents = new ArrayList();
    receiveDoneEvents = new ArrayList();
  }

  /*
   * (non-Javadoc)
   *
   * @see junit.framework.TestCase#tearDown()
   */
  protected void tearDown() throws Exception {
    super.tearDown();
    receiveStartEvents.clear();
    receiveDataEvents.clear();
    receiveDoneEvents.clear();
    adapter = null;
  }

  List receiveStartEvents;

  List receiveDataEvents;

  List receiveDoneEvents;

  public void testReceive() throws Exception {
    assertNotNull(adapter);
    final IFileTransferListener listener = new IFileTransferListener() {
      public void handleTransferEvent(IFileTransferEvent event) {
        if (event instanceof IIncomingFileTransferReceiveStartEvent) {
          IIncomingFileTransferReceiveStartEvent rse = (IIncomingFileTransferReceiveStartEvent) event;
          receiveStartEvents.add(rse);
          assertNotNull(rse.getFileID());
          assertNotNull(rse.getFileID().getFilename());
          try {
            rse.receive(System.out);
          } catch (IOException e) {
            fail(e.getLocalizedMessage());
          }
        } else if (event instanceof IIncomingFileTransferReceiveDataEvent) {
          receiveDataEvents.add(event);
        } else if (event instanceof IIncomingFileTransferReceiveDoneEvent) {
          receiveDoneEvents.add(event);
          syncNotify();
        }
      }
    };

    String targetURL = "scp://" + host + (retrieveFile.startsWith("/") ? "" : "/") + retrieveFile; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
    System.out.println("Retrieving from " + targetURL + " with username=" + username); //$NON-NLS-1$ //$NON-NLS-2$
    adapter.setConnectContextForAuthentication(ConnectContextFactory.createUsernamePasswordConnectContext(username, password));
    adapter.sendRetrieveRequest(FileIDFactory.getDefault().createFileID(adapter.getRetrieveNamespace(), targetURL), listener, null);

    syncWaitForNotify(60000);

    assertHasEvent(receiveStartEvents, IIncomingFileTransferReceiveStartEvent.class);
    assertHasMoreThanEventCount(receiveDataEvents, IIncomingFileTransferReceiveDataEvent.class, 0);
    assertHasEvent(receiveDoneEvents, IIncomingFileTransferReceiveDoneEvent.class);

  }

  public void syncNotify() {
    super.syncNotify();
  }
}
TOP

Related Classes of org.eclipse.ecf.tests.provider.filetransfer.scp.SCPRetrieveTest

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.