diff --git a/pickhardt-payments/src/main/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentComputation.java b/pickhardt-payments/src/main/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentSplitter.java similarity index 90% rename from pickhardt-payments/src/main/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentComputation.java rename to pickhardt-payments/src/main/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentSplitter.java index 17884e7c..a40d5e24 100644 --- a/pickhardt-payments/src/main/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentComputation.java +++ b/pickhardt-payments/src/main/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentSplitter.java @@ -12,11 +12,11 @@ import org.springframework.stereotype.Component; import java.util.Set; @Component -public class MultiPathPaymentComputation { +public class MultiPathPaymentSplitter { private final GrpcGetInfo grpcGetInfo; private final FlowComputation flowComputation; - public MultiPathPaymentComputation(GrpcGetInfo grpcGetInfo, FlowComputation flowComputation) { + public MultiPathPaymentSplitter(GrpcGetInfo grpcGetInfo, FlowComputation flowComputation) { this.flowComputation = flowComputation; this.grpcGetInfo = grpcGetInfo; } diff --git a/pickhardt-payments/src/test/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentComputationTest.java b/pickhardt-payments/src/test/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentSplitterTest.java similarity index 83% rename from pickhardt-payments/src/test/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentComputationTest.java rename to pickhardt-payments/src/test/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentSplitterTest.java index 58f25049..a3007624 100644 --- a/pickhardt-payments/src/test/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentComputationTest.java +++ b/pickhardt-payments/src/test/java/de/cotto/lndmanagej/pickhardtpayments/MultiPathPaymentSplitterTest.java @@ -29,10 +29,10 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) -class MultiPathPaymentComputationTest { +class MultiPathPaymentSplitterTest { private static final Coins AMOUNT = Coins.ofSatoshis(1_234); @InjectMocks - private MultiPathPaymentComputation multiPathPaymentComputation; + private MultiPathPaymentSplitter multiPathPaymentSplitter; @Mock private FlowComputation flowComputation; @@ -48,13 +48,13 @@ class MultiPathPaymentComputationTest { @Test void getMultiPathPaymentTo_uses_own_pubkey_as_source() { when(grpcGetInfo.getPubkey()).thenReturn(PUBKEY_4); - multiPathPaymentComputation.getMultiPathPaymentTo(PUBKEY_2, AMOUNT); + multiPathPaymentSplitter.getMultiPathPaymentTo(PUBKEY_2, AMOUNT); verify(flowComputation).getOptimalFlows(PUBKEY_4, PUBKEY_2, AMOUNT); } @Test void getMultiPathPayment_failure() { - MultiPathPayment multiPathPayment = multiPathPaymentComputation.getMultiPathPayment(PUBKEY, PUBKEY_2, AMOUNT); + MultiPathPayment multiPathPayment = multiPathPaymentSplitter.getMultiPathPayment(PUBKEY, PUBKEY_2, AMOUNT); assertThat(multiPathPayment.probability()).isZero(); } @@ -62,7 +62,7 @@ class MultiPathPaymentComputationTest { void getMultiPathPaymentTo() { when(flowComputation.getOptimalFlows(PUBKEY, PUBKEY_2, AMOUNT)).thenReturn(new Flows(FLOW)); when(grpcGetInfo.getPubkey()).thenReturn(PUBKEY); - MultiPathPayment multiPathPayment = multiPathPaymentComputation.getMultiPathPaymentTo(PUBKEY_2, AMOUNT); + MultiPathPayment multiPathPayment = multiPathPaymentSplitter.getMultiPathPaymentTo(PUBKEY_2, AMOUNT); MultiPathPayment expected = new MultiPathPayment(AMOUNT, FLOW.getProbability(), Set.of(new Route(List.of(EDGE), AMOUNT))); assertThat(multiPathPayment).isEqualTo(expected); @@ -75,7 +75,7 @@ class MultiPathPaymentComputationTest { Flow flow = new Flow(EDGE, halfOfCapacity); when(flowComputation.getOptimalFlows(PUBKEY, PUBKEY_2, AMOUNT)).thenReturn(new Flows(flow)); - MultiPathPayment multiPathPayment = multiPathPaymentComputation.getMultiPathPayment(PUBKEY, PUBKEY_2, AMOUNT); + MultiPathPayment multiPathPayment = multiPathPaymentSplitter.getMultiPathPayment(PUBKEY, PUBKEY_2, AMOUNT); assertThat(multiPathPayment.probability()) .isEqualTo((1.0 * halfOfCapacity.satoshis() + 1) / (capacitySat + 1)); @@ -89,7 +89,7 @@ class MultiPathPaymentComputationTest { Flow flow2 = new Flow(EDGE_3_2, EDGE_3_2.capacity()); when(flowComputation.getOptimalFlows(PUBKEY, PUBKEY_2, AMOUNT)).thenReturn(new Flows(flow1, flow2)); - MultiPathPayment multiPathPayment = multiPathPaymentComputation.getMultiPathPayment(PUBKEY, PUBKEY_2, AMOUNT); + MultiPathPayment multiPathPayment = multiPathPaymentSplitter.getMultiPathPayment(PUBKEY, PUBKEY_2, AMOUNT); double probabilityFlow1 = (1.0 * halfOfCapacity.satoshis() + 1) / (capacitySat + 1); double probabilityFlow2 = 1.0 / (EDGE_3_2.capacity().satoshis() + 1); @@ -104,7 +104,7 @@ class MultiPathPaymentComputationTest { Flow flow2 = new Flow(EDGE, halfOfCapacity); when(flowComputation.getOptimalFlows(PUBKEY, PUBKEY_2, AMOUNT)).thenReturn(new Flows(flow1, flow2)); - MultiPathPayment multiPathPayment = multiPathPaymentComputation.getMultiPathPayment(PUBKEY, PUBKEY_2, AMOUNT); + MultiPathPayment multiPathPayment = multiPathPaymentSplitter.getMultiPathPayment(PUBKEY, PUBKEY_2, AMOUNT); assertThat(multiPathPayment.probability()).isEqualTo(1.0 / (capacitySat + 1)); } @@ -113,7 +113,7 @@ class MultiPathPaymentComputationTest { void getMultiPathPayment_adds_remainder_to_route() { when(flowComputation.getOptimalFlows(PUBKEY, PUBKEY_2, AMOUNT)).thenReturn(new Flows(FLOW)); assumeThat(FLOW.amount()).isLessThan(AMOUNT); - MultiPathPayment multiPathPayment = multiPathPaymentComputation.getMultiPathPayment(PUBKEY, PUBKEY_2, AMOUNT); + MultiPathPayment multiPathPayment = multiPathPaymentSplitter.getMultiPathPayment(PUBKEY, PUBKEY_2, AMOUNT); assertThat(multiPathPayment.routes().iterator().next().amount()).isEqualTo(AMOUNT); } } diff --git a/web/src/integrationTest/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerIT.java b/web/src/integrationTest/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerIT.java index a74b3a8e..db3ef2f1 100644 --- a/web/src/integrationTest/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerIT.java +++ b/web/src/integrationTest/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerIT.java @@ -3,7 +3,7 @@ package de.cotto.lndmanagej.controller; import de.cotto.lndmanagej.controller.dto.ObjectMapperConfiguration; import de.cotto.lndmanagej.model.ChannelIdResolver; import de.cotto.lndmanagej.model.Coins; -import de.cotto.lndmanagej.pickhardtpayments.MultiPathPaymentComputation; +import de.cotto.lndmanagej.pickhardtpayments.MultiPathPaymentSplitter; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; @@ -31,7 +31,7 @@ class PickhardtPaymentsControllerIT { private MockMvc mockMvc; @MockBean - private MultiPathPaymentComputation multiPathPaymentComputation; + private MultiPathPaymentSplitter multiPathPaymentSplitter; @MockBean @SuppressWarnings("unused") @@ -42,7 +42,7 @@ class PickhardtPaymentsControllerIT { Coins amount = MULTI_PATH_PAYMENT.amount(); String amountAsString = String.valueOf(amount.satoshis()); double expectedProbability = MULTI_PATH_PAYMENT.probability(); - when(multiPathPaymentComputation.getMultiPathPaymentTo(PUBKEY, amount)) + when(multiPathPaymentSplitter.getMultiPathPaymentTo(PUBKEY, amount)) .thenReturn(MULTI_PATH_PAYMENT); mockMvc.perform(get(PREFIX + "/to/" + PUBKEY + "/amount/" + amount.satoshis())) .andExpect(jsonPath("$.probability", is(expectedProbability))) @@ -58,9 +58,9 @@ class PickhardtPaymentsControllerIT { Coins amount = MULTI_PATH_PAYMENT.amount(); String amountAsString = String.valueOf(amount.satoshis()); double expectedProbability = MULTI_PATH_PAYMENT.probability(); - when(multiPathPaymentComputation.getMultiPathPaymentTo(PUBKEY, amount)) + when(multiPathPaymentSplitter.getMultiPathPaymentTo(PUBKEY, amount)) .thenReturn(MULTI_PATH_PAYMENT); - when(multiPathPaymentComputation.getMultiPathPayment(PUBKEY, PUBKEY_2, Coins.ofSatoshis(1_234))) + when(multiPathPaymentSplitter.getMultiPathPayment(PUBKEY, PUBKEY_2, Coins.ofSatoshis(1_234))) .thenReturn(MULTI_PATH_PAYMENT); mockMvc.perform(get(PREFIX + "/from/" + PUBKEY + "/to/" + PUBKEY_2 + "/amount/" + 1_234)) .andExpect(jsonPath("$.probability", is(expectedProbability))) diff --git a/web/src/main/java/de/cotto/lndmanagej/controller/PickhardtPaymentsController.java b/web/src/main/java/de/cotto/lndmanagej/controller/PickhardtPaymentsController.java index be9c0f60..1856091a 100644 --- a/web/src/main/java/de/cotto/lndmanagej/controller/PickhardtPaymentsController.java +++ b/web/src/main/java/de/cotto/lndmanagej/controller/PickhardtPaymentsController.java @@ -4,7 +4,7 @@ import com.codahale.metrics.annotation.Timed; import de.cotto.lndmanagej.controller.dto.MultiPathPaymentDto; import de.cotto.lndmanagej.model.Coins; import de.cotto.lndmanagej.model.Pubkey; -import de.cotto.lndmanagej.pickhardtpayments.MultiPathPaymentComputation; +import de.cotto.lndmanagej.pickhardtpayments.MultiPathPaymentSplitter; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -13,10 +13,10 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/beta/pickhardt-payments/") public class PickhardtPaymentsController { - private final MultiPathPaymentComputation multiPathPaymentComputation; + private final MultiPathPaymentSplitter multiPathPaymentSplitter; - public PickhardtPaymentsController(MultiPathPaymentComputation multiPathPaymentComputation) { - this.multiPathPaymentComputation = multiPathPaymentComputation; + public PickhardtPaymentsController(MultiPathPaymentSplitter multiPathPaymentSplitter) { + this.multiPathPaymentSplitter = multiPathPaymentSplitter; } @Timed @@ -26,7 +26,7 @@ public class PickhardtPaymentsController { @PathVariable long amount ) { Coins coins = Coins.ofSatoshis(amount); - return MultiPathPaymentDto.fromModel(multiPathPaymentComputation.getMultiPathPaymentTo(pubkey, coins)); + return MultiPathPaymentDto.fromModel(multiPathPaymentSplitter.getMultiPathPaymentTo(pubkey, coins)); } @Timed @@ -37,6 +37,6 @@ public class PickhardtPaymentsController { @PathVariable long amount ) { Coins coins = Coins.ofSatoshis(amount); - return MultiPathPaymentDto.fromModel(multiPathPaymentComputation.getMultiPathPayment(source, target, coins)); + return MultiPathPaymentDto.fromModel(multiPathPaymentSplitter.getMultiPathPayment(source, target, coins)); } } diff --git a/web/src/test/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerTest.java b/web/src/test/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerTest.java index 09f408ef..cbe93721 100644 --- a/web/src/test/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerTest.java +++ b/web/src/test/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerTest.java @@ -2,7 +2,7 @@ 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 de.cotto.lndmanagej.pickhardtpayments.MultiPathPaymentSplitter; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; @@ -22,11 +22,11 @@ class PickhardtPaymentsControllerTest { private PickhardtPaymentsController controller; @Mock - private MultiPathPaymentComputation multiPathPaymentComputation; + private MultiPathPaymentSplitter multiPathPaymentSplitter; @Test void sendTo() { - when(multiPathPaymentComputation.getMultiPathPaymentTo(PUBKEY, Coins.ofSatoshis(456))) + when(multiPathPaymentSplitter.getMultiPathPaymentTo(PUBKEY, Coins.ofSatoshis(456))) .thenReturn(MULTI_PATH_PAYMENT); assertThat(controller.sendTo(PUBKEY, 456)) .isEqualTo(MultiPathPaymentDto.fromModel(MULTI_PATH_PAYMENT)); @@ -34,7 +34,7 @@ class PickhardtPaymentsControllerTest { @Test void send() { - when(multiPathPaymentComputation.getMultiPathPayment(PUBKEY, PUBKEY_2, Coins.ofSatoshis(123))) + when(multiPathPaymentSplitter.getMultiPathPayment(PUBKEY, PUBKEY_2, Coins.ofSatoshis(123))) .thenReturn(MULTI_PATH_PAYMENT); assertThat(controller.send(PUBKEY, PUBKEY_2, 123)) .isEqualTo(MultiPathPaymentDto.fromModel(MULTI_PATH_PAYMENT));