📄 ap2apapitest.java
字号:
/*******************************************************************************
* Copyright (c) 2006 Koji Hisano <hisano@gmail.com> - UBION Inc. Developer
* Copyright (c) 2006 UBION Inc. <http://www.ubion.co.jp/> All rights reserved.
*
* Copyright (c) 2006 Skype Technologies S.A. <http://www.skype.com/>
*
* This program and the accompanying materials are made available under the
* terms of the Common Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* Koji Hisano - initial API and implementation
******************************************************************************/
package com.skype;
import junit.framework.TestCase;
public final class Ap2ApAPITest extends TestCase {
static final String APPLICATION_NAME = Ap2ApAPITest.class.getName();
public void testApplication() throws Exception {
Skype.setDebug(true);
Application application = Skype.addApplication(APPLICATION_NAME);
Friend friend = TestData.getFriend();
checkConnectableFriendsBeforeConnecting(application);
try {
Stream[] streams = application.connect(friend);
assertEquals(1, streams.length);
Stream stream = streams[0];
checkConnectableFriendsAfterConnecting(application);
checkConnectedFriends(application, friend);
checkWrite(stream);
checkSend(stream);
checkDisconnect(application, stream);
} finally {
application.finish();
}
}
private void checkConnectableFriendsBeforeConnecting(Application application) throws SkypeException {
Friend[] connectableFriends = application.getAllConnectableFriends();
assertTrue(1 <= connectableFriends.length);
}
private void checkConnectableFriendsAfterConnecting(Application application) throws SkypeException {
Friend[] connectableFriends = application.getAllConnectableFriends();
assertTrue(0 <= connectableFriends.length);
}
private void checkConnectedFriends(Application application, Friend friend) throws SkypeException {
Friend[] connectableFriends = application.getAllConnectedFriends();
assertEquals(1, connectableFriends.length);
assertEquals(friend, connectableFriends[0]);
}
private void checkWrite(Stream stream) throws Exception {
final Object lock = new Object();
final String[] result = new String[1];
stream.addStreamListener(new StreamAdapter() {
@Override
public void textReceived(String text) throws SkypeException {
result[0] = text;
synchronized (lock) {
lock.notify();
}
}
});
synchronized (lock) {
stream.write("Hello, World!");
try {
lock.wait(10000);
} catch (InterruptedException e) {
fail();
}
}
assertEquals("Hello, World!", result[0]);
}
private void checkSend(Stream stream) throws Exception {
final Object lock = new Object();
final String[] result = new String[1];
stream.addStreamListener(new StreamAdapter() {
@Override
public void datagramReceived(String datagram) throws SkypeException {
result[0] = datagram;
synchronized (lock) {
lock.notify();
}
}
});
synchronized (lock) {
stream.send("Hello, World!");
try {
lock.wait(10000);
} catch (InterruptedException e) {
fail();
}
}
assertEquals("Hello, World!", result[0]);
}
private void checkDisconnect(Application application, Stream stream) throws Exception {
final Object lock = new Object();
final boolean[] result = new boolean[1];
application.addApplicationListener(new ApplicationAdapter() {
@Override
public void disconnected(Stream stream) throws SkypeException {
result[0] = true;
synchronized (lock) {
lock.notify();
}
}
});
synchronized (lock) {
stream.write("disconnect");
try {
lock.wait(10000);
} catch (InterruptedException e) {
fail();
}
}
assertTrue(result[0]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -