X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Futil%2Ffcp%2FFcpTest.java;h=b07bb8593b85b4193811d54a7713172acdda8839;hb=fba184e707edc02ac0f7fc89a4378549a4602476;hp=cedce1d9a5df9f3e9268110816e550bc639ff9bf;hpb=90f3a1c8e0c85f19c82130e49d7a605cb9e55286;p=jSite2.git diff --git a/src/net/pterodactylus/util/fcp/FcpTest.java b/src/net/pterodactylus/util/fcp/FcpTest.java index cedce1d..b07bb85 100644 --- a/src/net/pterodactylus/util/fcp/FcpTest.java +++ b/src/net/pterodactylus/util/fcp/FcpTest.java @@ -20,30 +20,34 @@ package net.pterodactylus.util.fcp; import java.io.IOException; -import java.util.List; -import java.util.Map; import junit.framework.TestCase; - +import net.pterodactylus.util.fcp.message.ClientHello; +import net.pterodactylus.util.fcp.message.CloseConnectionDuplicateClientName; +import net.pterodactylus.util.fcp.message.GenerateSSK; +import net.pterodactylus.util.fcp.message.NodeHello; /** - * TODO + * Tests various commands and the FCP connection. + * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> * @version $Id$ */ public class FcpTest extends TestCase { + /** The FCP connection. */ private FcpConnection fcpConnection; - + /** * {@inheritDoc} */ @Override protected void setUp() throws Exception { - fcpConnection = new FcpConnection("wing", "FcpTest"); + fcpConnection = new FcpConnection("wing"); fcpConnection.connect(); + fcpConnection.sendMessage(new ClientHello("FcpTest")); } - + /** * {@inheritDoc} */ @@ -51,32 +55,80 @@ public class FcpTest extends TestCase { protected void tearDown() throws Exception { fcpConnection.disconnect(); } - + + /** + * Tests the FCP connection be simply {@link #setUp() setting it up} and + * {@link #tearDown() tearing it down} again. + * + * @throws FcpException + * if an FCP error occurs + * @throws IOException + * if an I/O error occurs + */ public void testFcpConnection() throws FcpException, IOException { + /* do nothing. */ } - - public void testListPeers() throws FcpException, IOException { - List> peers = fcpConnection.sendListPeers(true, true); - for (Map peer: peers) { - for (Map.Entry entry: peer.entrySet()) { - System.out.println(entry.getKey() + ": " + entry.getValue()); + +// public void testListPeers() throws FcpException, IOException { +// List> peers = fcpConnection.sendListPeers(true, true); +// for (Map peer: peers) { +// for (Map.Entry entry: peer.entrySet()) { +// System.out.println(entry.getKey() + ": " + entry.getValue()); +// } +// } +// } + +// public void testListPeerNotes() throws FcpException, IOException { +// List> peers = fcpConnection.sendListPeerNotes("AY6rGAGjayoyQD2CkvQibf1Ct3mh6iwqyntzNpfRsiM"); +// for (Map peer: peers) { +// for (Map.Entry entry: peer.entrySet()) { +// System.out.println(entry.getKey() + ": " + entry.getValue()); +// } +// } +// } + + /** + * Generates an SSK key pair. + * + * @throws FcpException + * if an FCP error occurs + * @throws IOException + * if an I/O error occurs + * @throws InterruptedException + * if {@link Object#wait()} wakes up spuriously + */ + public void testGenerateSSK() throws IOException, FcpException, InterruptedException { + final boolean[] result = new boolean[1]; + FcpAdapter fcpAdapter = new FcpAdapter() { + /** + * @see net.pterodactylus.util.fcp.FcpAdapter#receivedNodeHello(net.pterodactylus.util.fcp.FcpConnection, + * net.pterodactylus.util.fcp.message.NodeHello) + */ + @Override + public void receivedNodeHello(FcpConnection fcpConnection, NodeHello nodeHello) { + result[0] = true; + synchronized (this) { + notify(); + } } - } - } - - public void testListPeerNotes() throws FcpException, IOException { - List> peers = fcpConnection.sendListPeerNotes("AY6rGAGjayoyQD2CkvQibf1Ct3mh6iwqyntzNpfRsiM"); - for (Map peer: peers) { - for (Map.Entry entry: peer.entrySet()) { - System.out.println(entry.getKey() + ": " + entry.getValue()); + + /** + * @see net.pterodactylus.util.fcp.FcpAdapter#receivedCloseConnectionDuplicateClientName(net.pterodactylus.util.fcp.FcpConnection, + * net.pterodactylus.util.fcp.message.CloseConnectionDuplicateClientName) + */ + @Override + public void receivedCloseConnectionDuplicateClientName(FcpConnection fcpConnection, CloseConnectionDuplicateClientName closeConnectionDuplicateClientName) { + result[0] = false; + synchronized (this) { + notify(); + } } + }; + synchronized (fcpAdapter) { + fcpConnection.sendMessage(new GenerateSSK()); + fcpAdapter.wait(); } + assertTrue("received NodeHello", result[0]); } - - public void testGenerateSSK() throws IOException, FcpException { - FcpKeyPair keyPair = fcpConnection.generateSSK(); - System.out.println("PrivateKey: " + keyPair.getPrivateKey()); - System.out.println("PublicKey: " + keyPair.getPublicKey()); - } - + }