Advertisement
Guest User

Untitled

a guest
Jul 29th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. public class SocketRule implements TestRule {
  2.  
  3. public static final Logger logger = LoggerFactory.getLogger(SocketRule.class);
  4.  
  5. private Map<Integer, Exception> providedPorts = new HashMap<Integer, Exception>();
  6. private int lastPort = 8000;
  7.  
  8. public int findFreePort() {
  9. do {
  10. lastPort++;
  11. } while (!Sockets.isPortAvailableUsingNetstat(lastPort));
  12. providedPorts.put(lastPort, new Exception());
  13.  
  14. return lastPort;
  15. }
  16.  
  17. public boolean checkProvidedPorts() {
  18. boolean result = true;
  19. for (Integer port : providedPorts.keySet()) {
  20. if (Sockets.isPortAvailableUsingNetstat(port)) {
  21. logger.debug("Port {} is available", port);
  22. } else {
  23. logger.error("Port " + port + " has not been released properly, it has been used first at:",
  24. providedPorts.get(port));
  25. }
  26. result = result && Sockets.isPortAvailableUsingNetstat(port);
  27. }
  28. return result;
  29. }
  30.  
  31. @Override
  32. public Statement apply(final Statement statement, Description description) {
  33. return new Statement() {
  34. @Override
  35. public void evaluate() throws Throwable {
  36. statement.evaluate();
  37. if (!checkProvidedPorts()) {
  38. throw new AssertionFailedError("All ports have not been released");
  39. }
  40. }
  41. };
  42. }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement