mirror of
https://github.com/aljazceru/lnd-manageJ.git
synced 2026-01-21 23:14:27 +01:00
add tests
This commit is contained in:
committed by
Carsten Otto
parent
2664d6ec17
commit
73f263b851
143
web/src/test/java/de/cotto/lndmanagej/UiDataServiceImplTest.java
Normal file
143
web/src/test/java/de/cotto/lndmanagej/UiDataServiceImplTest.java
Normal file
@@ -0,0 +1,143 @@
|
||||
package de.cotto.lndmanagej;
|
||||
|
||||
import de.cotto.lndmanagej.controller.ChannelController;
|
||||
import de.cotto.lndmanagej.controller.NodeController;
|
||||
import de.cotto.lndmanagej.controller.NotFoundException;
|
||||
import de.cotto.lndmanagej.controller.StatusController;
|
||||
import de.cotto.lndmanagej.controller.WarningsController;
|
||||
import de.cotto.lndmanagej.controller.dto.BalanceInformationDto;
|
||||
import de.cotto.lndmanagej.controller.dto.ChannelDetailsDto;
|
||||
import de.cotto.lndmanagej.controller.dto.ChannelsDto;
|
||||
import de.cotto.lndmanagej.controller.dto.FeeReportDto;
|
||||
import de.cotto.lndmanagej.controller.dto.FlowReportDto;
|
||||
import de.cotto.lndmanagej.controller.dto.NodesAndChannelsWithWarningsDto;
|
||||
import de.cotto.lndmanagej.controller.dto.OnChainCostsDto;
|
||||
import de.cotto.lndmanagej.controller.dto.PoliciesDto;
|
||||
import de.cotto.lndmanagej.controller.dto.RebalanceReportDto;
|
||||
import de.cotto.lndmanagej.service.ChannelService;
|
||||
import de.cotto.lndmanagej.service.NodeService;
|
||||
import de.cotto.lndmanagej.ui.dto.NodeDto;
|
||||
import de.cotto.lndmanagej.ui.dto.OpenChannelDto;
|
||||
import de.cotto.lndmanagej.ui.dto.StatusModel;
|
||||
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.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
import static de.cotto.lndmanagej.model.BalanceInformationFixtures.BALANCE_INFORMATION;
|
||||
import static de.cotto.lndmanagej.model.ChannelDetailsFixtures.CHANNEL_DETAILS;
|
||||
import static de.cotto.lndmanagej.model.ChannelIdFixtures.CHANNEL_ID;
|
||||
import static de.cotto.lndmanagej.model.FeeReportFixtures.FEE_REPORT;
|
||||
import static de.cotto.lndmanagej.model.FlowReportFixtures.FLOW_REPORT;
|
||||
import static de.cotto.lndmanagej.model.LocalOpenChannelFixtures.LOCAL_OPEN_CHANNEL;
|
||||
import static de.cotto.lndmanagej.model.NodeFixtures.ALIAS;
|
||||
import static de.cotto.lndmanagej.model.NodeFixtures.NODE_PEER;
|
||||
import static de.cotto.lndmanagej.model.OnChainCostsFixtures.ON_CHAIN_COSTS;
|
||||
import static de.cotto.lndmanagej.model.OpenInitiator.LOCAL;
|
||||
import static de.cotto.lndmanagej.model.PolicyFixtures.POLICIES_FOR_LOCAL_CHANNEL;
|
||||
import static de.cotto.lndmanagej.model.PubkeyFixtures.PUBKEY;
|
||||
import static de.cotto.lndmanagej.model.PubkeyFixtures.PUBKEY_2;
|
||||
import static de.cotto.lndmanagej.model.RebalanceReportFixtures.REBALANCE_REPORT;
|
||||
import static de.cotto.lndmanagej.model.warnings.ChannelWarningFixtures.CHANNEL_NUM_UPDATES_WARNING;
|
||||
import static de.cotto.lndmanagej.ui.model.NodeDetailsDtoFixture.NODE_DETAILS_DTO;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class UiDataServiceImplTest {
|
||||
@InjectMocks
|
||||
private UiDataServiceImpl uiDataService;
|
||||
|
||||
@Mock
|
||||
private StatusController statusController;
|
||||
|
||||
@Mock
|
||||
private WarningsController warningsController;
|
||||
|
||||
@Mock
|
||||
private ChannelController channelController;
|
||||
|
||||
@Mock
|
||||
private ChannelService channelService;
|
||||
|
||||
@Mock
|
||||
private NodeController nodeController;
|
||||
|
||||
@Mock
|
||||
private NodeService nodeService;
|
||||
|
||||
@Test
|
||||
void getStatus() {
|
||||
int blockHeight = 995;
|
||||
NodesAndChannelsWithWarningsDto warnings = new NodesAndChannelsWithWarningsDto(List.of(), List.of());
|
||||
when(statusController.isSyncedToChain()).thenReturn(true);
|
||||
when(statusController.getBlockHeight()).thenReturn(blockHeight);
|
||||
when(warningsController.getWarnings()).thenReturn(warnings);
|
||||
StatusModel expected = new StatusModel(true, blockHeight, warnings);
|
||||
|
||||
assertThat(uiDataService.getStatus()).isEqualTo(expected);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getOpenChannels() {
|
||||
String alias = "remote alias";
|
||||
PoliciesDto policies = PoliciesDto.createFromModel(POLICIES_FOR_LOCAL_CHANNEL);
|
||||
BalanceInformationDto balance = BalanceInformationDto.createFromModel(BALANCE_INFORMATION);
|
||||
when(channelService.getLocalChannel(CHANNEL_ID)).thenReturn(Optional.of(LOCAL_OPEN_CHANNEL));
|
||||
when(nodeController.getAlias(PUBKEY_2)).thenReturn(alias);
|
||||
when(channelController.getPolicies(CHANNEL_ID)).thenReturn(policies);
|
||||
when(channelController.getBalance(CHANNEL_ID)).thenReturn(balance);
|
||||
when(statusController.getOpenChannels()).thenReturn(new ChannelsDto(List.of(CHANNEL_ID)));
|
||||
|
||||
assertThat(uiDataService.getOpenChannels()).containsExactly(
|
||||
new OpenChannelDto(CHANNEL_ID, alias, PUBKEY_2, policies, balance)
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getChannelDetails() throws Exception {
|
||||
when(channelController.getDetails(CHANNEL_ID)).thenReturn(ChannelDetailsDto.createFromModel(CHANNEL_DETAILS));
|
||||
assertThat(uiDataService.getChannelDetails(CHANNEL_ID)).isEqualTo(
|
||||
new de.cotto.lndmanagej.ui.dto.ChannelDetailsDto(
|
||||
CHANNEL_ID,
|
||||
PUBKEY_2,
|
||||
ALIAS,
|
||||
LOCAL,
|
||||
BalanceInformationDto.createFromModel(BALANCE_INFORMATION),
|
||||
OnChainCostsDto.createFromModel(ON_CHAIN_COSTS),
|
||||
PoliciesDto.createFromModel(POLICIES_FOR_LOCAL_CHANNEL),
|
||||
FeeReportDto.createFromModel(FEE_REPORT),
|
||||
FlowReportDto.createFromModel(FLOW_REPORT),
|
||||
RebalanceReportDto.createFromModel(REBALANCE_REPORT),
|
||||
Set.of(CHANNEL_NUM_UPDATES_WARNING.description())
|
||||
));
|
||||
}
|
||||
|
||||
@Test
|
||||
void getChannelDetails_not_found() throws Exception {
|
||||
when(channelController.getDetails(CHANNEL_ID)).thenThrow(NotFoundException.class);
|
||||
assertThatExceptionOfType(NotFoundException.class).isThrownBy(
|
||||
() -> uiDataService.getChannelDetails(CHANNEL_ID)
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getNode() {
|
||||
when(nodeService.getNode(PUBKEY)).thenReturn(NODE_PEER);
|
||||
assertThat(uiDataService.getNode(PUBKEY)).isEqualTo(
|
||||
new NodeDto(PUBKEY.toString(), NODE_PEER.alias(), true)
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getNodeDetails() {
|
||||
when(nodeController.getDetails(PUBKEY)).thenReturn(NODE_DETAILS_DTO);
|
||||
assertThat(uiDataService.getNodeDetails(PUBKEY)).isEqualTo(NODE_DETAILS_DTO);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user