[Java] Update batteries to latest upstream (0.0.114) API
[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 import org.ldk.structs.Record;
7
8 public class ManualMsgHandlingPeerTest {
9     @Test
10     void test_message_handler() {
11         long logger = bindings.LDKLogger_new((long arg)->{
12             System.out.println(bindings.Record_get_args(arg));
13             bindings.Record_free(arg);
14         });
15         long chan_handler = bindings.LDKChannelMessageHandler_new(new bindings.LDKChannelMessageHandler() {
16             @Override
17             public void handle_open_channel(byte[] their_node_id, long their_features, long msg) {
18
19             }
20
21             @Override
22             public void handle_accept_channel(byte[] their_node_id, long their_features, long msg) {
23
24             }
25
26             @Override
27             public void handle_funding_created(byte[] their_node_id, long msg) {
28
29             }
30
31             @Override
32             public void handle_funding_signed(byte[] their_node_id, long msg) {
33
34             }
35
36             @Override
37             public void handle_channel_ready(byte[] their_node_id, long msg) {
38
39             }
40
41             @Override
42             public void handle_shutdown(byte[] their_node_id, long their_features, long msg) {
43
44             }
45
46             @Override
47             public void handle_closing_signed(byte[] their_node_id, long msg) {
48
49             }
50
51             @Override
52             public void handle_update_add_htlc(byte[] their_node_id, long msg) {
53
54             }
55
56             @Override
57             public void handle_update_fulfill_htlc(byte[] their_node_id, long msg) {
58
59             }
60
61             @Override
62             public void handle_update_fail_htlc(byte[] their_node_id, long msg) {
63
64             }
65
66             @Override
67             public void handle_update_fail_malformed_htlc(byte[] their_node_id, long msg) {
68
69             }
70
71             @Override
72             public void handle_commitment_signed(byte[] their_node_id, long msg) {
73
74             }
75
76             @Override
77             public void handle_revoke_and_ack(byte[] their_node_id, long msg) {
78
79             }
80
81             @Override
82             public void handle_update_fee(byte[] their_node_id, long msg) {
83
84             }
85
86             @Override
87             public void handle_announcement_signatures(byte[] their_node_id, long msg) {
88
89             }
90
91             @Override
92             public void peer_disconnected(byte[] their_node_id, boolean no_connection_possible) {
93
94             }
95
96             @Override
97             public long peer_connected(byte[] their_node_id, long msg) {
98                 assert false;
99                 return 0;
100             }
101
102             @Override
103             public void handle_channel_reestablish(byte[] their_node_id, long msg) {
104
105             }
106
107             @Override
108             public void handle_channel_update(byte[] their_node_id, long msg) {
109
110             }
111
112             @Override
113             public void handle_error(byte[] their_node_id, long msg) {
114
115             }
116
117             @Override
118             public long provided_node_features() {
119                 assert false;
120                 return 0;
121             }
122
123             @Override
124             public long provided_init_features(byte[] their_node_id) {
125                 assert false;
126                 return 0;
127             }
128         }, () -> new long[0]);
129         long route_handler = bindings.LDKRoutingMessageHandler_new(new bindings.LDKRoutingMessageHandler() {
130             @Override public long handle_node_announcement(long msg) {
131                 return 0;
132             }
133             @Override public long handle_channel_announcement(long msg) {
134                 return 0;
135             }
136             @Override public long handle_channel_update(long msg) {
137                 return 0;
138             }
139
140             @Override
141             public long get_next_channel_announcement(long starting_point) {
142                 assert false;
143                 return 0;
144             }
145
146             @Override
147             public long get_next_node_announcement(byte[] starting_point) {
148                 assert false;
149                 return 0;
150             }
151
152             @Override public long peer_connected(byte[] their_node_id, long init) { assert false; return 0; }
153
154             @Override
155             public long handle_reply_channel_range(byte[] their_node_id, long msg) {
156                 return 0;
157             }
158
159             @Override
160             public long handle_reply_short_channel_ids_end(byte[] their_node_id, long msg) {
161                 return 0;
162             }
163
164             @Override
165             public long handle_query_channel_range(byte[] their_node_id, long msg) {
166                 return 0;
167             }
168
169             @Override
170             public long handle_query_short_channel_ids(byte[] their_node_id, long msg) {
171                 return 0;
172             }
173
174             @Override
175             public long provided_node_features() {
176                 assert false;
177                 return 0;
178             }
179
180             @Override
181             public long provided_init_features(byte[] their_node_id) {
182                 assert false;
183                 return 0;
184             }
185         }, () -> new long[0]);
186         long ignoring_message_handler = bindings.IgnoringMessageHandler_new();
187         long onion_message_handler = bindings.IgnoringMessageHandler_as_OnionMessageHandler(ignoring_message_handler);
188         long message_handler = bindings.MessageHandler_new(chan_handler, route_handler, onion_message_handler);
189         byte[] our_node_secret = new byte[32];
190         byte[] random_data = new byte[32];
191         for (byte i = 0; i < 32; i++) { random_data[i] = i; our_node_secret[i] = (byte) (i ^ 0xff); }
192
193         long peer_manager = bindings.PeerManager_new(message_handler, our_node_secret, (int)(System.currentTimeMillis() / 1000),
194                 random_data, logger,
195                 bindings.IgnoringMessageHandler_as_CustomMessageHandler(ignoring_message_handler));
196
197         // Test Level_max() since its the only place we create a java object from a Rust-returned enum.
198         assert bindings.Level_max() == Level.LDKLevel_Gossip;
199
200         // Note that we can't rely on finalizer order, so don't bother trying to rely on it here
201         bindings.Logger_free(logger);
202         bindings.ChannelMessageHandler_free(chan_handler);
203         bindings.RoutingMessageHandler_free(route_handler);
204         bindings.OnionMessageHandler_free(onion_message_handler);
205         bindings.IgnoringMessageHandler_free(ignoring_message_handler);
206         //bindings.MessageHandler_free(message_handler);
207         bindings.PeerManager_free(peer_manager);
208     }
209 }