Merge branch 'PortChange' into 'main'

Portchange

Closes #64

See merge request cse1105/2025-2026/teams/csep-team-76!62
This commit is contained in:
Mei Chang van der Werff 2026-01-19 20:34:01 +01:00
commit 3ed44b3626
3 changed files with 139 additions and 0 deletions

View file

@ -0,0 +1,61 @@
package server;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.net.ServerSocket;
import static org.junit.jupiter.api.Assertions.*;
class PortCheckerTest {
@Test
void portAvailable() {
PortChecker checker = new PortChecker();
int port = 0; //will find a random available port
boolean available = checker.isPortAvailable(port);
assertTrue(available);
}
@Test
void portNotAvailable(){
try {
ServerSocket socket = new ServerSocket(0);
int usedPort = socket.getLocalPort();
PortChecker checker = new PortChecker();
boolean notFree = checker.isPortAvailable(usedPort);
assertFalse(notFree);
}
catch (IOException e) {
throw new RuntimeException(e);
}
}
@Test
void invalidPort(){
PortChecker checker = new PortChecker();
assertThrows(IllegalArgumentException.class, ()-> {
checker.isPortAvailable(-1);
}
);
assertThrows(IllegalArgumentException.class, ()-> {
checker.isPortAvailable(65536);
}
);
}
@Test
void findFreePort() throws IOException {
PortChecker checker = new PortChecker();
int port = checker.findFreePort();
int defaultPort = 8080;
int lastPort = 8090;
boolean greaterOrEqual = port >= defaultPort;
boolean lessOrEqual = port <= lastPort;
boolean inRange = greaterOrEqual && lessOrEqual;
boolean isItFree = checker.isPortAvailable(port);
assertTrue(inRange);
}
}