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

Class Class, % Method, % Line, %
PeerScoringInformation 0% (0/1) 0% (0/21) 0% (0/54)


1 package co.rsk.scoring; 2  3 import com.google.common.annotations.VisibleForTesting; 4  5 /** 6  * PeerScoringInformation is a simple class to expose 7  * the recorded scoring information for a peer 8  * <p> 9  * Created by ajlopez on 12/07/2017. 10  */ 11 public class PeerScoringInformation { 12  private final int successfulHandshakes; 13  private final int failedHandshakes; 14  private final int invalidNetworks; 15  private final int repeatedMessages; 16  private final int validBlocks; 17  private final int validTransactions; 18  private final int invalidBlocks; 19  private final int invalidTransactions; 20  private final int invalidMessages; 21  private final int timeoutMessages; 22  private final int unexpectedMessages; 23  private final int invalidHeader; 24  private final int score; 25  private final int punishments; 26  private final boolean goodReputation; 27  private final String id; 28  private final String type; //todo(techdebt) use an enum or constants 29  30  public PeerScoringInformation(int successfulHandshakes, int failedHandshakes, int invalidNetworks, 31  int repeatedMessages, int validBlocks, int validTransactions, int invalidBlocks, 32  int invalidTransactions, int invalidMessages, int timeoutMessages, 33  int unexpectedMessages, int invalidHeader, int score, int punishments, 34  boolean goodReputation, String id, String type) { 35  this.successfulHandshakes = successfulHandshakes; 36  this.failedHandshakes = failedHandshakes; 37  this.invalidNetworks = invalidNetworks; 38  this.repeatedMessages = repeatedMessages; 39  this.validBlocks = validBlocks; 40  this.validTransactions = validTransactions; 41  this.invalidBlocks = invalidBlocks; 42  this.invalidTransactions = invalidTransactions; 43  this.invalidMessages = invalidMessages; 44  this.timeoutMessages = timeoutMessages; 45  this.unexpectedMessages = unexpectedMessages; 46  this.invalidHeader = invalidHeader; 47  this.score = score; 48  this.punishments = punishments; 49  this.goodReputation = goodReputation; 50  this.id = id; 51  this.type = type; 52  } 53  54  public static PeerScoringInformation buildByScoring(PeerScoring scoring, String id, String type) { 55  int successfulHandshakes = scoring.getEventCounter(EventType.SUCCESSFUL_HANDSHAKE); 56  int failedHandshakes = scoring.getEventCounter(EventType.FAILED_HANDSHAKE); 57  int invalidNetworks = scoring.getEventCounter(EventType.INVALID_NETWORK); 58  int repeatedMessages = scoring.getEventCounter(EventType.REPEATED_MESSAGE); 59  int validBlocks = scoring.getEventCounter(EventType.VALID_BLOCK); 60  int validTransactions = scoring.getEventCounter(EventType.VALID_TRANSACTION); 61  int invalidBlocks = scoring.getEventCounter(EventType.INVALID_BLOCK); 62  int invalidTransactions = scoring.getEventCounter(EventType.INVALID_TRANSACTION); 63  int invalidMessages = scoring.getEventCounter(EventType.INVALID_MESSAGE); 64  int timeoutMessages = scoring.getEventCounter(EventType.TIMEOUT_MESSAGE); 65  int unexpectedMessages = scoring.getEventCounter(EventType.UNEXPECTED_MESSAGE); 66  int invalidHeader = scoring.getEventCounter(EventType.INVALID_HEADER); 67  int score = scoring.getScore(); 68  int punishments = scoring.getPunishmentCounter(); 69  boolean goodReputation = scoring.hasGoodReputation(); 70  71  return new PeerScoringInformation(successfulHandshakes, failedHandshakes, invalidNetworks, 72  repeatedMessages, validBlocks, validTransactions, invalidBlocks, invalidTransactions, 73  invalidMessages, timeoutMessages, unexpectedMessages, invalidHeader, score, punishments, 74  goodReputation, id, type); 75  } 76  77  public String getId() { 78  return this.id; 79  } 80  81  @VisibleForTesting 82  public String getType() { return this.type; } 83  84  public boolean getGoodReputation() { 85  return this.goodReputation; 86  } 87  88  public int getSuccessfulHandshakes() { return this.successfulHandshakes; } 89  90  public int getFailedHandshakes() { return this.failedHandshakes; } 91  92  public int getInvalidNetworks() { return this.invalidNetworks; } 93  94  public int getRepeatedMessages() { return this.repeatedMessages; } 95  96  public int getValidBlocks() { 97  return this.validBlocks; 98  } 99  100  public int getScore() { 101  return this.score; 102  } 103  104  public int getInvalidBlocks() { 105  return this.invalidBlocks; 106  } 107  108  public int getValidTransactions() { 109  return this.validTransactions; 110  } 111  112  public int getInvalidTransactions() { 113  return this.invalidTransactions; 114  } 115  116  public int getInvalidMessages() { 117  return this.invalidMessages; 118  } 119  120  public int getUnexpectedMessages() { 121  return this.unexpectedMessages; 122  } 123  124  public int getTimeoutMessages() { 125  return this.timeoutMessages; 126  } 127  128  public int getInvalidHeader() { 129  return this.invalidHeader; 130  } 131  132  public int getPunishments() { return this.punishments; } 133  134  public int goodReputationCount() { 135  return getGoodReputation() ? 1 : 0; 136  } 137  138  public int badReputationCount() { 139  return !getGoodReputation() ? 1 : 0; 140  } 141 } 142  143