Files
lnd-manageJ/web/src/test/java/de/cotto/lndmanagej/controller/LegacyControllerTest.java
2024-06-07 11:55:56 +02:00

84 lines
3.5 KiB
Java

package de.cotto.lndmanagej.controller;
import de.cotto.lndmanagej.model.Coins;
import de.cotto.lndmanagej.service.ChannelService;
import de.cotto.lndmanagej.service.NodeService;
import de.cotto.lndmanagej.service.PolicyService;
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 java.util.Optional;
import java.util.Set;
import static de.cotto.lndmanagej.model.ChannelFixtures.CAPACITY;
import static de.cotto.lndmanagej.model.ChannelFixtures.CAPACITY_2;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID_COMPACT;
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID_COMPACT_4;
import static de.cotto.lndmanagej.model.LocalOpenChannelFixtures.LOCAL_OPEN_CHANNEL;
import static de.cotto.lndmanagej.model.LocalOpenChannelFixtures.LOCAL_OPEN_CHANNEL_TO_NODE_3;
import static de.cotto.lndmanagej.model.NodeFixtures.ALIAS_2;
import static de.cotto.lndmanagej.model.NodeFixtures.ALIAS_3;
import static de.cotto.lndmanagej.model.PolicyFixtures.POLICY_1;
import static de.cotto.lndmanagej.model.PolicyFixtures.POLICY_2;
import static de.cotto.lndmanagej.model.PubkeyFixtures.PUBKEY_2;
import static de.cotto.lndmanagej.model.PubkeyFixtures.PUBKEY_3;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class LegacyControllerTest {
@InjectMocks
private LegacyController legacyController;
@Mock
private NodeService nodeService;
@Mock
private ChannelService channelService;
@Mock
private PolicyService policyService;
@Test
void getOpenChannelIdsPretty() {
Coins balance1 = LOCAL_OPEN_CHANNEL.getBalanceInformation().localAvailable();
Coins balance2 = LOCAL_OPEN_CHANNEL_TO_NODE_3.getBalanceInformation().localAvailable();
long ppm1 = POLICY_1.feeRate();
long ppm2 = POLICY_2.feeRate();
when(policyService.getPolicyTo(LOCAL_OPEN_CHANNEL.getId(), LOCAL_OPEN_CHANNEL.getRemotePubkey()))
.thenReturn(Optional.of(POLICY_1));
when(policyService.getPolicyTo(LOCAL_OPEN_CHANNEL_TO_NODE_3.getId(), PUBKEY_3))
.thenReturn(Optional.of(POLICY_2));
when(nodeService.getAlias(PUBKEY_2)).thenReturn(ALIAS_2);
when(nodeService.getAlias(PUBKEY_3)).thenReturn(ALIAS_3);
when(channelService.getOpenChannels()).thenReturn(Set.of(LOCAL_OPEN_CHANNEL, LOCAL_OPEN_CHANNEL_TO_NODE_3));
assertThat(legacyController.getOpenChannelIdsPretty())
.isEqualTo("%s\t%s %s %s %s %s%n%s\t%s %s %s %s %s".formatted(
CHANNEL_ID_COMPACT, PUBKEY_2, padded(CAPACITY), padded(balance1), padded(ppm1), ALIAS_2,
CHANNEL_ID_COMPACT_4, PUBKEY_3, padded(CAPACITY_2), padded(balance2), padded(ppm2), ALIAS_3
));
}
private String padded(long longValue) {
return String.format("%,6d", longValue);
}
private String padded(Coins coins) {
return padded(coins.toStringSat());
}
private static String padded(String string) {
return String.format("%11s", string);
}
@Test
void getOpenChannelIdsPretty_ordered() {
when(channelService.getOpenChannels()).thenReturn(Set.of(LOCAL_OPEN_CHANNEL_TO_NODE_3, LOCAL_OPEN_CHANNEL));
assertThat(legacyController.getOpenChannelIdsPretty())
.matches(CHANNEL_ID_COMPACT + ".*\n" + CHANNEL_ID_COMPACT_4 + ".*");
}
}