This commit is contained in:
danielbroll
2022-05-10 14:22:48 +02:00
committed by Carsten Otto
parent 9ae865b4d7
commit ab91b9ed2b
14 changed files with 147 additions and 103 deletions

View File

@@ -1,70 +1,41 @@
package de.cotto.lndmanagej;
import de.cotto.lndmanagej.controller.dto.BalanceInformationDto;
import de.cotto.lndmanagej.controller.dto.ChannelWithWarningsDto;
import de.cotto.lndmanagej.controller.dto.FeeReportDto;
import de.cotto.lndmanagej.controller.dto.FlowReportDto;
import de.cotto.lndmanagej.controller.dto.NodeDetailsDto;
import de.cotto.lndmanagej.controller.dto.NodeWithWarningsDto;
import de.cotto.lndmanagej.controller.dto.NodesAndChannelsWithWarningsDto;
import de.cotto.lndmanagej.controller.dto.OnChainCostsDto;
import de.cotto.lndmanagej.controller.dto.OnlineReportDto;
import de.cotto.lndmanagej.controller.dto.RebalanceReportDto;
import de.cotto.lndmanagej.model.ChannelId;
import de.cotto.lndmanagej.model.ChannelIdFixtures;
import de.cotto.lndmanagej.model.FeeReportFixtures;
import de.cotto.lndmanagej.model.FlowReportFixtures;
import de.cotto.lndmanagej.model.OnlineReport;
import de.cotto.lndmanagej.model.OnlineReportFixtures;
import de.cotto.lndmanagej.model.OpenInitiator;
import de.cotto.lndmanagej.model.Pubkey;
import de.cotto.lndmanagej.model.RebalanceReportFixtures;
import de.cotto.lndmanagej.model.warnings.ChannelWarningsFixtures;
import de.cotto.lndmanagej.model.warnings.NodeWarningsFixtures;
import de.cotto.lndmanagej.model.warnings.Warning;
import de.cotto.lndmanagej.ui.UiDataService;
import de.cotto.lndmanagej.ui.dto.ChanDetailsDto;
import de.cotto.lndmanagej.ui.dto.NodeDto;
import de.cotto.lndmanagej.ui.dto.OpenChannelDto;
import de.cotto.lndmanagej.ui.dto.StatusModel;
import org.slf4j.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.boot.logging.LogLevel;
import org.springframework.boot.logging.LoggingSystem;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
import static de.cotto.lndmanagej.model.BalanceInformationFixtures.BALANCE_INFORMATION;
import static de.cotto.lndmanagej.model.OnChainCostsFixtures.ON_CHAIN_COSTS;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.ACINQ;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.ACINQ2;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.BCASH;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.COTTO;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.OPEN_CHANNEL_DTO;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.WOS;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.WOS2;
import static de.cotto.lndmanagej.MockUtil.createChannelDetails;
import static de.cotto.lndmanagej.MockUtil.createNodeDetails;
import static de.cotto.lndmanagej.MockUtil.createOpenChannels;
import static de.cotto.lndmanagej.MockUtil.getStatusModel;
@SuppressWarnings("CPD-START")
@Configuration
@EnableAutoConfiguration(
exclude = {
DataSourceAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class,
HibernateJpaAutoConfiguration.class
DataSourceAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class,
HibernateJpaAutoConfiguration.class
}
)
@ComponentScan("de.cotto.lndmanagej.ui")
public class DemoApplication {
public static void main(String[] arguments) {
LoggingSystem.get(ClassLoader.getSystemClassLoader()).setLogLevel(Logger.ROOT_LOGGER_NAME, LogLevel.ERROR);
SpringApplication.run(DemoApplication.class, arguments);
}
@@ -73,28 +44,12 @@ public class DemoApplication {
@Override
public StatusModel getStatus() {
return new StatusModel(true, 735642, createNodeWarnings());
}
private NodesAndChannelsWithWarningsDto createNodeWarnings() {
return new NodesAndChannelsWithWarningsDto(
List.of(new NodeWithWarningsDto(NodeWarningsFixtures.NODE_WARNINGS.warnings().stream()
.map(Warning::description)
.collect(Collectors.toSet()), WOS.remoteAlias(), WOS.remotePubkey()),
new NodeWithWarningsDto(NodeWarningsFixtures.NODE_WARNINGS.warnings().stream()
.map(Warning::description)
.collect(Collectors.toSet()), ACINQ.remoteAlias(), ACINQ.remotePubkey())
),
List.of(new ChannelWithWarningsDto(ChannelWarningsFixtures.CHANNEL_WARNINGS.warnings().stream()
.map(Warning::description)
.collect(Collectors.toSet()), WOS.channelId())
)
);
return getStatusModel();
}
@Override
public List<OpenChannelDto> getOpenChannels() {
return List.of(OPEN_CHANNEL_DTO, ACINQ, ACINQ2, WOS, WOS2, BCASH, COTTO);
return createOpenChannels();
}
@Override
@@ -106,21 +61,6 @@ public class DemoApplication {
return createChannelDetails(localOpenChannel);
}
private ChanDetailsDto createChannelDetails(OpenChannelDto channel) {
return new ChanDetailsDto(
channel.channelId(),
channel.remotePubkey(),
channel.remoteAlias(),
OpenInitiator.REMOTE,
channel.balanceInformation(),
OnChainCostsDto.createFromModel(ON_CHAIN_COSTS),
channel.policies(),
FeeReportDto.createFromModel(FeeReportFixtures.FEE_REPORT),
FlowReportDto.createFromModel(FlowReportFixtures.FLOW_REPORT),
RebalanceReportDto.createFromModel(RebalanceReportFixtures.REBALANCE_REPORT),
ChannelWarningsFixtures.CHANNEL_WARNINGS.descriptions());
}
@Override
public NodeDto getNode(Pubkey pubkey) {
return getOpenChannels().stream()
@@ -134,28 +74,9 @@ public class DemoApplication {
return createNodeDetails(getNode(pubkey));
}
private static NodeDetailsDto createNodeDetails(NodeDto node) {
OnlineReport onlineReport = node.online()
? OnlineReportFixtures.ONLINE_REPORT : OnlineReportFixtures.ONLINE_REPORT_OFFLINE;
return new NodeDetailsDto(
Pubkey.create(node.pubkey()),
node.alias(),
List.of(ChannelIdFixtures.CHANNEL_ID),
List.of(ChannelIdFixtures.CHANNEL_ID_2),
List.of(),
List.of(),
OnChainCostsDto.createFromModel(ON_CHAIN_COSTS),
BalanceInformationDto.createFromModel(BALANCE_INFORMATION),
OnlineReportDto.createFromModel(onlineReport),
FeeReportDto.createFromModel(FeeReportFixtures.FEE_REPORT),
FlowReportDto.createFromModel(FlowReportFixtures.FLOW_REPORT),
RebalanceReportDto.createFromModel(RebalanceReportFixtures.REBALANCE_REPORT),
ChannelWarningsFixtures.CHANNEL_WARNINGS.descriptions());
}
}
private static boolean isOnline(OpenChannelDto c) {
return c.channelId().getShortChannelId() % 2 != 0;
private static boolean isOnline(OpenChannelDto channel) {
return channel.channelId().getShortChannelId() % 2 != 0;
}
}

View File

@@ -0,0 +1,106 @@
package de.cotto.lndmanagej;
import de.cotto.lndmanagej.controller.dto.BalanceInformationDto;
import de.cotto.lndmanagej.controller.dto.ChannelWithWarningsDto;
import de.cotto.lndmanagej.controller.dto.FeeReportDto;
import de.cotto.lndmanagej.controller.dto.FlowReportDto;
import de.cotto.lndmanagej.controller.dto.NodeDetailsDto;
import de.cotto.lndmanagej.controller.dto.NodeWithWarningsDto;
import de.cotto.lndmanagej.controller.dto.NodesAndChannelsWithWarningsDto;
import de.cotto.lndmanagej.controller.dto.OnChainCostsDto;
import de.cotto.lndmanagej.controller.dto.OnlineReportDto;
import de.cotto.lndmanagej.controller.dto.RebalanceReportDto;
import de.cotto.lndmanagej.model.ChannelIdFixtures;
import de.cotto.lndmanagej.model.FeeReportFixtures;
import de.cotto.lndmanagej.model.FlowReportFixtures;
import de.cotto.lndmanagej.model.OnlineReport;
import de.cotto.lndmanagej.model.OnlineReportFixtures;
import de.cotto.lndmanagej.model.OpenInitiator;
import de.cotto.lndmanagej.model.Pubkey;
import de.cotto.lndmanagej.model.RebalanceReportFixtures;
import de.cotto.lndmanagej.model.warnings.ChannelWarningsFixtures;
import de.cotto.lndmanagej.model.warnings.NodeWarningsFixtures;
import de.cotto.lndmanagej.model.warnings.Warning;
import de.cotto.lndmanagej.ui.dto.ChanDetailsDto;
import de.cotto.lndmanagej.ui.dto.NodeDto;
import de.cotto.lndmanagej.ui.dto.OpenChannelDto;
import de.cotto.lndmanagej.ui.dto.StatusModel;
import java.util.List;
import java.util.stream.Collectors;
import static de.cotto.lndmanagej.model.BalanceInformationFixtures.BALANCE_INFORMATION;
import static de.cotto.lndmanagej.model.OnChainCostsFixtures.ON_CHAIN_COSTS;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.ACINQ;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.ACINQ2;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.BCASH;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.COTTO;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.OPEN_CHANNEL_DTO;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.WOS;
import static de.cotto.lndmanagej.ui.model.OpenChannelDtoFixture.WOS2;
public final class MockUtil {
private MockUtil() {
// util class
}
public static StatusModel getStatusModel() {
return new StatusModel(true, 735_642, createNodeWarnings());
}
public static List<OpenChannelDto> createOpenChannels() {
return List.of(OPEN_CHANNEL_DTO, ACINQ, ACINQ2, WOS, WOS2, BCASH, COTTO);
}
public static NodesAndChannelsWithWarningsDto createNodeWarnings() {
return new NodesAndChannelsWithWarningsDto(
List.of(new NodeWithWarningsDto(NodeWarningsFixtures.NODE_WARNINGS.warnings().stream()
.map(Warning::description)
.collect(Collectors.toSet()), WOS.remoteAlias(), WOS.remotePubkey()),
new NodeWithWarningsDto(NodeWarningsFixtures.NODE_WARNINGS.warnings().stream()
.map(Warning::description)
.collect(Collectors.toSet()), ACINQ.remoteAlias(), ACINQ.remotePubkey())
),
List.of(new ChannelWithWarningsDto(ChannelWarningsFixtures.CHANNEL_WARNINGS.warnings().stream()
.map(Warning::description)
.collect(Collectors.toSet()), WOS.channelId())
)
);
}
public static ChanDetailsDto createChannelDetails(OpenChannelDto channel) {
return new ChanDetailsDto(
channel.channelId(),
channel.remotePubkey(),
channel.remoteAlias(),
OpenInitiator.REMOTE,
channel.balanceInformation(),
OnChainCostsDto.createFromModel(ON_CHAIN_COSTS),
channel.policies(),
FeeReportDto.createFromModel(FeeReportFixtures.FEE_REPORT),
FlowReportDto.createFromModel(FlowReportFixtures.FLOW_REPORT),
RebalanceReportDto.createFromModel(RebalanceReportFixtures.REBALANCE_REPORT),
ChannelWarningsFixtures.CHANNEL_WARNINGS.descriptions());
}
public static NodeDetailsDto createNodeDetails(NodeDto node) {
OnlineReport onlineReport = node.online()
? OnlineReportFixtures.ONLINE_REPORT : OnlineReportFixtures.ONLINE_REPORT_OFFLINE;
return new NodeDetailsDto(
Pubkey.create(node.pubkey()),
node.alias(),
List.of(ChannelIdFixtures.CHANNEL_ID),
List.of(ChannelIdFixtures.CHANNEL_ID_2),
List.of(),
List.of(),
OnChainCostsDto.createFromModel(ON_CHAIN_COSTS),
BalanceInformationDto.createFromModel(BALANCE_INFORMATION),
OnlineReportDto.createFromModel(onlineReport),
FeeReportDto.createFromModel(FeeReportFixtures.FEE_REPORT),
FlowReportDto.createFromModel(FlowReportFixtures.FLOW_REPORT),
RebalanceReportDto.createFromModel(RebalanceReportFixtures.REBALANCE_REPORT),
ChannelWarningsFixtures.CHANNEL_WARNINGS.descriptions());
}
}