c1d6a5e3d12c51cf5c068e8a694b99316fb7ef38
[ldk-java] / src / test / java / org / ldk / ManualMsgHandlingPeerTest.java
1 package org.ldk;
2
3 import org.junit.jupiter.api.Test;
4 import org.ldk.impl.bindings;
5 import org.ldk.enums.*;
6
7 public class ManualMsgHandlingPeerTest {
8     @Test
9     void test_message_handler() {
10         long logger = bindings.LDKLogger_new((String arg)->{
11             System.out.println(arg);
12         });
13         long chan_handler = bindings.LDKChannelMessageHandler_new(new bindings.LDKChannelMessageHandler() {
14             @Override
15             public void handle_open_channel(byte[] their_node_id, long their_features, long msg) {
16
17             }
18
19             @Override
20             public void handle_accept_channel(byte[] their_node_id, long their_features, long msg) {
21
22             }
23
24             @Override
25             public void handle_funding_created(byte[] their_node_id, long msg) {
26
27             }
28
29             @Override
30             public void handle_funding_signed(byte[] their_node_id, long msg) {
31
32             }
33
34             @Override
35             public void handle_funding_locked(byte[] their_node_id, long msg) {
36
37             }
38
39             @Override
40             public void handle_shutdown(byte[] their_node_id, long their_features, long msg) {
41
42             }
43
44             @Override
45             public void handle_closing_signed(byte[] their_node_id, long msg) {
46
47             }
48
49             @Override
50             public void handle_update_add_htlc(byte[] their_node_id, long msg) {
51
52             }
53
54             @Override
55             public void handle_update_fulfill_htlc(byte[] their_node_id, long msg) {
56
57             }
58
59             @Override
60             public void handle_update_fail_htlc(byte[] their_node_id, long msg) {
61
62             }
63
64             @Override
65             public void handle_update_fail_malformed_htlc(byte[] their_node_id, long msg) {
66
67             }
68
69             @Override
70             public void handle_commitment_signed(byte[] their_node_id, long msg) {
71
72             }
73
74             @Override
75             public void handle_revoke_and_ack(byte[] their_node_id, long msg) {
76
77             }
78
79             @Override
80             public void handle_update_fee(byte[] their_node_id, long msg) {
81
82             }
83
84             @Override
85             public void handle_announcement_signatures(byte[] their_node_id, long msg) {
86
87             }
88
89             @Override
90             public void peer_disconnected(byte[] their_node_id, boolean no_connection_possible) {
91
92             }
93
94             @Override
95             public void peer_connected(byte[] their_node_id, long msg) {
96
97             }
98
99             @Override
100             public void handle_channel_reestablish(byte[] their_node_id, long msg) {
101
102             }
103
104             @Override
105             public void handle_error(byte[] their_node_id, long msg) {
106
107             }
108         }, () -> new long[0]);
109         long route_handler = bindings.LDKRoutingMessageHandler_new(new bindings.LDKRoutingMessageHandler() {
110             @Override public long handle_node_announcement(long msg) {
111                 return 0;
112             }
113             @Override public long handle_channel_announcement(long msg) {
114                 return 0;
115             }
116             @Override public long handle_channel_update(long msg) {
117                 return 0;
118             }
119             @Override public void handle_htlc_fail_channel_update(long update) {
120
121             }
122             @Override public long[] get_next_channel_announcements(long starting_point, byte batch_amount) {
123                 return new long[0];
124             }
125             @Override public long[] get_next_node_announcements(byte[] starting_point, byte batch_amount) {
126                 return new long[0];
127             }
128
129             @Override
130             public void sync_routing_table(byte[] their_node_id, long init) {
131
132             }
133
134             @Override
135             public long handle_reply_channel_range(byte[] their_node_id, long msg) {
136                 return 0;
137             }
138
139             @Override
140             public long handle_reply_short_channel_ids_end(byte[] their_node_id, long msg) {
141                 return 0;
142             }
143
144             @Override
145             public long handle_query_channel_range(byte[] their_node_id, long msg) {
146                 return 0;
147             }
148
149             @Override
150             public long handle_query_short_channel_ids(byte[] their_node_id, long msg) {
151                 return 0;
152             }
153         }, () -> new long[0]);
154         long message_handler = bindings.MessageHandler_new(chan_handler, route_handler);
155         byte[] our_node_secret = new byte[32];
156         byte[] random_data = new byte[32];
157         for (byte i = 0; i < 32; i++) { random_data[i] = i; our_node_secret[i] = (byte) (i ^ 0xff); }
158
159         long peer_manager = bindings.PeerManager_new(message_handler, our_node_secret, random_data, logger);
160
161         // Test Level_max() since its the only place we create a java object from a Rust-returned enum.
162         assert bindings.Level_max() == LDKLevel.LDKLevel_Trace;
163
164         // Note that we can't rely on finalizer order, so don't bother trying to rely on it here
165         bindings.Logger_free(logger);
166         bindings.ChannelMessageHandler_free(chan_handler);
167         bindings.RoutingMessageHandler_free(route_handler);
168         //bindings.MessageHandler_free(message_handler);
169         bindings.PeerManager_free(peer_manager);
170     }
171 }