add basic support for #PickhardtPayments

work in progress, see https://github.com/C-Otto/lnd-manageJ/issues/6
This commit is contained in:
Carsten Otto
2022-03-20 00:05:01 +01:00
parent f5f3c34707
commit 8804a28538
43 changed files with 2230 additions and 13 deletions

View File

@@ -0,0 +1,42 @@
package de.cotto.lndmanagej.controller;
import de.cotto.lndmanagej.controller.dto.MultiPathPaymentDto;
import de.cotto.lndmanagej.model.Coins;
import de.cotto.lndmanagej.pickhardtpayments.MultiPathPaymentComputation;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import static de.cotto.lndmanagej.model.PubkeyFixtures.PUBKEY;
import static de.cotto.lndmanagej.model.PubkeyFixtures.PUBKEY_2;
import static de.cotto.lndmanagej.pickhardtpayments.model.MultiPathPaymentFixtures.MULTI_PATH_PAYMENT;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class PickhardtPaymentsControllerTest {
@InjectMocks
private PickhardtPaymentsController controller;
@Mock
private MultiPathPaymentComputation multiPathPaymentComputation;
@Test
void sendTo() {
when(multiPathPaymentComputation.getMultiPathPaymentTo(PUBKEY, Coins.ofSatoshis(456)))
.thenReturn(MULTI_PATH_PAYMENT);
assertThat(controller.sendTo(PUBKEY, 456))
.isEqualTo(MultiPathPaymentDto.fromModel(MULTI_PATH_PAYMENT));
}
@Test
void send() {
when(multiPathPaymentComputation.getMultiPathPayment(PUBKEY, PUBKEY_2, Coins.ofSatoshis(123)))
.thenReturn(MULTI_PATH_PAYMENT);
assertThat(controller.send(PUBKEY, PUBKEY_2, 123))
.isEqualTo(MultiPathPaymentDto.fromModel(MULTI_PATH_PAYMENT));
}
}

View File

@@ -0,0 +1,22 @@
package de.cotto.lndmanagej.controller.dto;
import org.junit.jupiter.api.Test;
import java.util.List;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID;
import static de.cotto.lndmanagej.pickhardtpayments.model.MultiPathPaymentFixtures.MULTI_PATH_PAYMENT;
import static org.assertj.core.api.Assertions.assertThat;
class MultiPathPaymentDtoTest {
@Test
void fromModel() {
double probability = 0.999_995_238_095_464_9;
String amountSat = "100";
assertThat(MultiPathPaymentDto.fromModel(MULTI_PATH_PAYMENT)).isEqualTo(new MultiPathPaymentDto(
amountSat,
probability,
List.of(new RouteDto(amountSat, List.of(CHANNEL_ID), probability)))
);
}
}