add rebalance costs to channel details

This commit is contained in:
Carsten Otto
2021-12-09 16:59:03 +01:00
parent 820fca691e
commit 3f5ea4ce8e
7 changed files with 77 additions and 1 deletions

View File

@@ -5,6 +5,7 @@ import de.cotto.lndmanagej.controller.dto.ChannelDetailsDto;
import de.cotto.lndmanagej.controller.dto.ChannelDto;
import de.cotto.lndmanagej.controller.dto.ClosedChannelDetailsDto;
import de.cotto.lndmanagej.controller.dto.FeeReportDto;
import de.cotto.lndmanagej.controller.dto.OffChainCostsDto;
import de.cotto.lndmanagej.controller.dto.OnChainCostsDto;
import de.cotto.lndmanagej.controller.dto.PoliciesDto;
import de.cotto.lndmanagej.model.BalanceInformation;
@@ -16,6 +17,7 @@ import de.cotto.lndmanagej.service.BalanceService;
import de.cotto.lndmanagej.service.ChannelService;
import de.cotto.lndmanagej.service.FeeService;
import de.cotto.lndmanagej.service.NodeService;
import de.cotto.lndmanagej.service.OffChainCostService;
import de.cotto.lndmanagej.service.OnChainCostService;
import de.cotto.lndmanagej.service.PolicyService;
import org.junit.jupiter.api.BeforeEach;
@@ -45,7 +47,10 @@ import static org.mockito.Mockito.when;
class ChannelControllerTest {
private static final Coins OPEN_COSTS = Coins.ofSatoshis(1);
private static final Coins CLOSE_COSTS = Coins.ofSatoshis(2);
private static final Coins SOURCE_COSTS = Coins.ofSatoshis(3);
private static final Coins TARGET_COSTS = Coins.ofSatoshis(4);
private static final OnChainCostsDto ON_CHAIN_COSTS = new OnChainCostsDto(OPEN_COSTS, CLOSE_COSTS);
private static final OffChainCostsDto OFF_CHAIN_COSTS = new OffChainCostsDto(SOURCE_COSTS, TARGET_COSTS);
private static final PoliciesDto FEE_CONFIGURATION_DTO = PoliciesDto.createFromModel(POLICIES);
private static final ClosedChannelDetailsDto CLOSED_CHANNEL_DETAILS_DTO =
new ClosedChannelDetailsDto(CloseInitiator.REMOTE, 987_654);
@@ -67,6 +72,9 @@ class ChannelControllerTest {
@Mock
private OnChainCostService onChainCostService;
@Mock
private OffChainCostService offChainCostService;
@Mock
private PolicyService policyService;
@@ -77,6 +85,8 @@ class ChannelControllerTest {
void setUp() {
lenient().when(onChainCostService.getOpenCostsForChannelId(CHANNEL_ID)).thenReturn(Optional.of(OPEN_COSTS));
lenient().when(onChainCostService.getCloseCostsForChannelId(CHANNEL_ID)).thenReturn(Optional.of(CLOSE_COSTS));
lenient().when(offChainCostService.getRebalanceSourceCostsForChannel(CHANNEL_ID)).thenReturn(SOURCE_COSTS);
lenient().when(offChainCostService.getRebalanceTargetCostsForChannel(CHANNEL_ID)).thenReturn(TARGET_COSTS);
lenient().when(policyService.getPolicies(CHANNEL_ID)).thenReturn(POLICIES);
lenient().when(feeService.getFeeReportForChannel(CHANNEL_ID)).thenReturn(FEE_REPORT);
}
@@ -114,6 +124,7 @@ class ChannelControllerTest {
ALIAS_2,
LOCAL_OPEN_CHANNEL.getBalanceInformation(),
ON_CHAIN_COSTS,
OFF_CHAIN_COSTS,
FEE_CONFIGURATION_DTO,
ClosedChannelDetailsDto.UNKNOWN,
FEE_REPORT_DTO
@@ -133,6 +144,7 @@ class ChannelControllerTest {
ALIAS_2,
LOCAL_OPEN_CHANNEL_PRIVATE.getBalanceInformation(),
ON_CHAIN_COSTS,
OFF_CHAIN_COSTS,
FEE_CONFIGURATION_DTO,
ClosedChannelDetailsDto.UNKNOWN,
FEE_REPORT_DTO
@@ -218,6 +230,7 @@ class ChannelControllerTest {
ALIAS_2,
BalanceInformation.EMPTY,
ON_CHAIN_COSTS,
OFF_CHAIN_COSTS,
PoliciesDto.EMPTY,
new ClosedChannelDetailsDto(closeInitiator, closeHeight),
FEE_REPORT_DTO

View File

@@ -19,6 +19,8 @@ import static org.assertj.core.api.Assertions.assertThat;
class ChannelDetailsDtoTest {
private static final OnChainCostsDto ON_CHAIN_COSTS = new OnChainCostsDto(Coins.ofSatoshis(1), Coins.ofSatoshis(2));
private static final OffChainCostsDto OFF_CHAIN_COSTS =
new OffChainCostsDto(Coins.ofSatoshis(3), Coins.ofSatoshis(4));
private static final ClosedChannelDetailsDto CLOSE_DETAILS = new ClosedChannelDetailsDto("abc", 123);
private static final FeeReportDto FEE_REPORT =
new FeeReportDto(Coins.ofMilliSatoshis(1234), Coins.ofMilliSatoshis(567));
@@ -27,6 +29,7 @@ class ChannelDetailsDtoTest {
ALIAS,
BALANCE_INFORMATION,
ON_CHAIN_COSTS,
OFF_CHAIN_COSTS,
PoliciesDto.EMPTY,
CLOSE_DETAILS,
FEE_REPORT
@@ -84,6 +87,7 @@ class ChannelDetailsDtoTest {
ALIAS,
BALANCE_INFORMATION,
ON_CHAIN_COSTS,
OFF_CHAIN_COSTS,
PoliciesDto.EMPTY,
CLOSE_DETAILS,
FEE_REPORT
@@ -112,4 +116,9 @@ class ChannelDetailsDtoTest {
void onChainCosts() {
assertThat(CHANNEL_DETAILS_DTO.onChainCosts()).isEqualTo(ON_CHAIN_COSTS);
}
@Test
void offChainCosts() {
assertThat(CHANNEL_DETAILS_DTO.offChainCosts()).isEqualTo(OFF_CHAIN_COSTS);
}
}

View File

@@ -0,0 +1,15 @@
package de.cotto.lndmanagej.controller.dto;
import de.cotto.lndmanagej.model.Coins;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
class OffChainCostsDtoTest {
@Test
void converts_to_msat_strings() {
OffChainCostsDto dto = new OffChainCostsDto(Coins.ofMilliSatoshis(1), Coins.ofMilliSatoshis(1_234));
assertThat(dto.rebalanceSource()).isEqualTo("1");
assertThat(dto.rebalanceTarget()).isEqualTo("1234");
}
}