public void test_all() { BaseHolder pkg = new BaseHolder(); passer.pass_state(pkg); assertNotNull("passer returned null for state value", pkg.value); this.test_state(pkg.value); pkg.value = null; passer.pass_ops(pkg); assertNotNull("passer returned null for interface value", pkg.value); this.test_ops(pkg.value); this.test_exception(pkg.value); passer.pass_nil(pkg); assertNull("passer returned not null for null value", pkg.value); }
/** * Starts task process working for this peer * * <p>Works concurrently to solve challenges! * * @param jobOwner Peer to work for */ public void requestWork(final PeerAddress jobOwner) { System.out.println("Request work from " + Passer.print(jobOwner)); sendRequest( jobOwner, new TaskMessage(TaskMessageType.REQUEST_CHALLENGE, myWorkerID, ""), new OnReplyCommand() { @Override public void execute(Object replyMessageContent) { TaskMessage taskMessage = TaskMessage.check(replyMessageContent); if (taskMessage.getType() != TaskMessageType.CHALLENGE) { throw new IllegalStateException("Should be a Challenge response here!"); } final Challenge challenge = (Challenge) taskMessage.getActualContent(); System.out.println("Challenge received: " + challenge.toString()); Runnable solver = new Runnable() { @Override public void run() { Solution challengeSolution = challenge.solve(); System.out.println("Challenge solved"); sendRequest( jobOwner, new TaskMessage( TaskMessageType.REQUEST_TASK, myWorkerID, challengeSolution), new OnReplyCommand() { @Override public void execute(Object replyMessageContent2) { TaskMessage taskMessage2 = TaskMessage.check(replyMessageContent2); switch (taskMessage2.getType()) { case TASK: ReplicaBox replicaBox = (ReplicaBox) taskMessage2.getActualContent(); System.out.println( "Start processing task, \n\tResultKey: " + replicaBox.getResultKey()); workOnTaskDeceitfully(jobOwner, replicaBox); System.out.println( "Some Task was received from " + Passer.print(jobOwner)); break; case NO_TASK_AVAILABLE: System.out.println( "No task available form this job owner any more"); // TODO break; case CHALLENGE_FAIL: throw new IllegalStateException( "Solution failed: " + taskMessage2.getActualContent()); default: throw new IllegalStateException( "Should be a Challenge response here!"); } } }); } }; pool.submit(solver); } }); }