Coverage Summary for Class: PeerScoringReporterUtil (co.rsk.scoring)

Class Class, % Method, % Line, %
PeerScoringReporterUtil 0% (0/1) 0% (0/6) 0% (0/27)


1 package co.rsk.scoring; 2  3 import com.fasterxml.jackson.core.JsonProcessingException; 4 import com.fasterxml.jackson.databind.ObjectMapper; 5  6 import java.util.List; 7 import java.util.Optional; 8 import java.util.function.Function; 9  10 public class PeerScoringReporterUtil { 11  12  private PeerScoringReporterUtil() { 13  } 14  15  public static PeerScoringReputationSummary buildReputationSummary(List<PeerScoringInformation> peerScoringInformationList) { 16  17  return new PeerScoringReputationSummary( 18  peerScoringInformationList.size(), 19  sumBy(peerScoringInformationList, PeerScoringInformation::getSuccessfulHandshakes), 20  sumBy(peerScoringInformationList, PeerScoringInformation::getFailedHandshakes), 21  sumBy(peerScoringInformationList, PeerScoringInformation::getInvalidNetworks), 22  sumBy(peerScoringInformationList, PeerScoringInformation::getRepeatedMessages), 23  sumBy(peerScoringInformationList, PeerScoringInformation::getValidBlocks), 24  sumBy(peerScoringInformationList, PeerScoringInformation::getValidTransactions), 25  sumBy(peerScoringInformationList, PeerScoringInformation::getInvalidBlocks), 26  sumBy(peerScoringInformationList, PeerScoringInformation::getInvalidTransactions), 27  sumBy(peerScoringInformationList, PeerScoringInformation::getInvalidMessages), 28  sumBy(peerScoringInformationList, PeerScoringInformation::getTimeoutMessages), 29  sumBy(peerScoringInformationList, PeerScoringInformation::getUnexpectedMessages), 30  sumBy(peerScoringInformationList, PeerScoringInformation::getInvalidHeader), 31  sumBy(peerScoringInformationList, PeerScoringInformation::getScore), 32  sumBy(peerScoringInformationList, PeerScoringInformation::getPunishments), 33  sumBy(peerScoringInformationList, PeerScoringInformation::goodReputationCount), 34  sumBy(peerScoringInformationList, PeerScoringInformation::badReputationCount) 35  ); 36  } 37  38  private static int sumBy(List<PeerScoringInformation> peerScoringInformationList, Function<PeerScoringInformation, Integer> mapper) { 39  if(peerScoringInformationList == null || peerScoringInformationList.isEmpty()) { 40  return 0; 41  } 42  Optional<Integer> result = peerScoringInformationList.stream() 43  .map(mapper) 44  .reduce((a, b) -> a + b); 45  46  return result.isPresent() ? result.get() : 0; 47  } 48  49  public static String detailedReputationString(List<PeerScoringInformation> peerScoringInformationList) throws JsonProcessingException { 50  return new ObjectMapper().writeValueAsString(peerScoringInformationList); 51  } 52  53  public static String reputationSummaryString(List<PeerScoringInformation> peerScoringInformationList) throws JsonProcessingException { 54  return new ObjectMapper().writeValueAsString(buildReputationSummary(peerScoringInformationList)); 55  } 56 }