Update test for new bindings
[ldk-java] / src / test / java / org / ldk / PeerTest.java
1 package org.ldk;
2
3 import org.junit.jupiter.api.Test;
4 import org.ldk.impl.bindings;
5
6 public class PeerTest {
7     @Test
8     void test_message_handler() {
9         long logger = bindings.LDKLogger_new((String arg)-> System.out.println(arg));
10
11         long fee_estimator = bindings.LDKFeeEstimator_new(new bindings.LDKFeeEstimator() {
12             @Override
13             public int get_est_sat_per_1000_weight(bindings.LDKConfirmationTarget confirmation_target) {
14                 return 0;
15             }
16         });
17         long tx_broadcaster = bindings.LDKBroadcasterInterface_new(new bindings.LDKBroadcasterInterface() {
18             @Override
19             public void broadcast_transaction(long tx) {
20                 // We should broadcast
21             }
22         });
23         long chain_monitor = bindings.LDKWatch_new(new bindings.LDKWatch() {
24             @Override
25             public long watch_channel(long funding_txo, long monitor) {
26                 return 0;
27             }
28
29             @Override
30             public long update_channel(long funding_txo, long update) {
31                 return 0;
32             }
33
34             @Override
35             public long release_pending_monitor_events() {
36                 return 0;
37             }
38         });
39         byte[] key_seed = new byte[32];
40         for (byte i = 0; i < 32; i++) { key_seed[i] = i; }
41         long keys = bindings.KeysManager_new(key_seed, bindings.LDKNetwork.LDKNetwork_Bitcoin, System.currentTimeMillis() / 1000, (int)(System.currentTimeMillis() * 1000) & 0xffffffff);
42         long keys_interface = bindings.KeysManager_as_KeysInterface(keys);
43         long config = bindings.UserConfig_default();
44         long chan_manager = bindings.ChannelManager_new(bindings.LDKNetwork.LDKNetwork_Bitcoin, fee_estimator, chain_monitor, tx_broadcaster, logger, keys_interface, config, 1);
45
46         long chan_handler = bindings.ChannelManager_as_ChannelMessageHandler(chan_manager);
47         long router = bindings.NetGraphMsgHandler_new(0, logger);
48         long route_handler = bindings.NetGraphMsgHandler_as_RoutingMessageHandler(router);
49         long message_handler = bindings.MessageHandler_new(chan_handler, route_handler);
50         long our_node_secret = bindings.LDKSecretKey_new(); //TODO: Need LDKSecretKey constructor
51         byte[] random_data = new byte[32];
52         for (byte i = 0; i < 32; i++) { random_data[i] = i; }
53
54         long peer_manager = bindings.PeerManager_new(message_handler, our_node_secret, random_data, logger);
55
56         // Note that we can't rely on finalizer order, so don't bother trying to rely on it here
57         bindings.Logger_free(logger);
58         bindings.FeeEstimator_free(fee_estimator);
59         bindings.BroadcasterInterface_free(tx_broadcaster);
60         bindings.Watch_free(chain_monitor);
61         bindings.KeysManager_free(keys);
62         bindings.KeysInterface_free(keys_interface);
63         bindings.ChannelManager_free(chan_manager);
64         bindings.ChannelMessageHandler_free(chan_handler);
65         bindings.NetGraphMsgHandler_free(router);
66         bindings.RoutingMessageHandler_free(route_handler);
67         //bindings.MessageHandler_free(message_handler);
68         bindings.PeerManager_free(peer_manager);
69     }
70 }