Update tests to latest upstream changes (ChannelKeys rename, mostly)
[ldk-java] / src / test / java / org / ldk / HumanObjectPeerTest.java
index 27ddc7c2a53e7f96f936651120ebc4cbc5f43737..548d5e2b7555a5ad0f56163cdd6ac4f0e1d1f6cc 100644 (file)
@@ -42,9 +42,9 @@ class HumanObjectPeerTestInstance {
                 @Override public byte[] get_shutdown_pubkey() { return underlying_if.get_shutdown_pubkey(); }
 
                 @Override
-                public ChannelKeys get_channel_keys(boolean inbound, long channel_value_satoshis) {
-                    ChannelKeys underlying_ck = underlying_if.get_channel_keys(inbound, channel_value_satoshis);
-                    ChannelKeys.ChannelKeysInterface cki = new ChannelKeys.ChannelKeysInterface() {
+                public Sign get_channel_signer(boolean inbound, long channel_value_satoshis) {
+                    Sign underlying_ck = underlying_if.get_channel_signer(inbound, channel_value_satoshis);
+                    Sign.SignInterface si = new Sign.SignInterface() {
                         @Override
                         public byte[] get_per_commitment_point(long idx) {
                             return underlying_ck.get_per_commitment_point(idx);
@@ -56,8 +56,8 @@ class HumanObjectPeerTestInstance {
                         }
 
                         @Override
-                        public TwoTuple<Long, Long> key_derivation_params() {
-                            return new TwoTuple<Long, Long>((long)0, (long)1);
+                        public byte[] channel_keys_id() {
+                            return new byte[32];
                         }
 
                         @Override
@@ -100,8 +100,8 @@ class HumanObjectPeerTestInstance {
                             return underlying_ck.write();
                         }
                     };
-                    ChannelKeys resp = ChannelKeys.new_impl(cki, underlying_ck.get_pubkeys());
-                    must_free_objs.add(new WeakReference<>(cki));
+                    Sign resp = Sign.new_impl(si, underlying_ck.get_pubkeys());
+                    must_free_objs.add(new WeakReference<>(si));
                     must_free_objs.add(new WeakReference<>(resp));
                     must_free_objs.add(new WeakReference<>(underlying_ck));
                     return resp;
@@ -113,7 +113,7 @@ class HumanObjectPeerTestInstance {
                 }
 
                 @Override
-                public Result_ChanKeySignerDecodeErrorZ read_chan_signer(byte[] reader) {
+                public Result_SignDecodeErrorZ read_chan_signer(byte[] reader) {
                     return underlying_if.read_chan_signer(reader);
                 }
             });
@@ -228,7 +228,7 @@ class HumanObjectPeerTestInstance {
             for (byte i = 0; i < 32; i++) {
                 key_seed[i] = (byte) (i ^ seed);
             }
-            KeysManager keys = KeysManager.constructor_new(key_seed, LDKNetwork.LDKNetwork_Bitcoin, System.currentTimeMillis() / 1000, (int) (System.currentTimeMillis() * 1000));
+            KeysManager keys = KeysManager.constructor_new(key_seed, System.currentTimeMillis() / 1000, (int) (System.currentTimeMillis() * 1000));
             if (use_km_wrapper) {
                 this.keys_interface = manual_keysif(keys.as_KeysInterface());
             } else {
@@ -333,6 +333,20 @@ class HumanObjectPeerTestInstance {
             return null;
         }
 
+        Event[] get_monitor_events() {
+            if (chain_monitor != null) {
+                return chain_monitor.as_EventsProvider().get_and_clear_pending_events();
+            } else {
+                synchronized (monitors) {
+                    assert monitors.size() == 1;
+                    for (ChannelMonitor mon : monitors.values()) {
+                        return mon.get_and_clear_pending_events();
+                    }
+                    return null;
+                }
+            }
+        }
+
         Route get_route(byte[] dest_node, ChannelDetails[] our_chans) {
             try (LockedNetworkGraph netgraph = this.router.read_locked_graph()) {
                 NetworkGraph graph = netgraph.graph();
@@ -379,7 +393,7 @@ class HumanObjectPeerTestInstance {
         if (use_nio_peer_handler) {
             peer1.nio_peer_handler.check_events();
             peer2.nio_peer_handler.check_events();
-            try { Thread.sleep(500); } catch (InterruptedException e) { assert false; }
+            try { Thread.sleep(400); } catch (InterruptedException e) { assert false; }
         } else {
             synchronized (runqueue) {
                 ran = false;
@@ -517,6 +531,18 @@ class HumanObjectPeerTestInstance {
         assert payment_res instanceof Result_NonePaymentSendFailureZ.Result_NonePaymentSendFailureZ_OK;
         wait_events_processed(peer1, peer2);
 
+        RouteHop[][] hops = new RouteHop[1][1];
+        byte[] hop_pubkey = new byte[33];
+        hop_pubkey[0] = 3;
+        hop_pubkey[1] = 42;
+        hops[0][0] = RouteHop.constructor_new(hop_pubkey, NodeFeatures.constructor_known(), 42, ChannelFeatures.constructor_known(), 100, 0);
+        Route r2 = Route.constructor_new(hops);
+        payment_res = peer1.chan_manager.send_payment(r2, payment_hash, new byte[32]);
+        assert payment_res instanceof Result_NonePaymentSendFailureZ.Result_NonePaymentSendFailureZ_Err;
+
+        assert peer1.get_monitor_events().length == 0;
+        assert peer2.get_monitor_events().length == 0;
+
         if (reload_peers) {
             if (use_nio_peer_handler) {
                 peer1.nio_peer_handler.interrupt();
@@ -610,9 +636,16 @@ class HumanObjectPeerTestInstance {
         }
 
         if (use_nio_peer_handler) {
+            state.peer1.peer_manager.disconnect_by_node_id(state.peer2.chan_manager.get_our_node_id(), false);
+            wait_events_processed(state.peer1, state.peer2);
+            assert state.peer1.peer_manager.get_peer_node_ids().length == 0;
+            assert state.peer2.peer_manager.get_peer_node_ids().length == 0;
             state.peer1.nio_peer_handler.interrupt();
             state.peer2.nio_peer_handler.interrupt();
         }
+
+        assert state.peer1.get_monitor_events().length == 0;
+        assert state.peer2.get_monitor_events().length == 0;
     }
 
     java.util.LinkedList<WeakReference<Object>> must_free_objs = new java.util.LinkedList();