Added simple logging, first test

This commit is contained in:
maciejrusek
2026-04-07 21:05:38 +02:00
parent 5d9417011c
commit 5431a7cfb7
5 changed files with 72 additions and 2 deletions

21
pom.xml
View File

@@ -14,4 +14,25 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.25.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.25.3</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>6.0.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project> </project>

View File

@@ -1,3 +1,6 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@@ -9,8 +12,11 @@ import java.util.ArrayList;
public class ChatServer implements Runnable { public class ChatServer implements Runnable {
private int port = 9000; private int port = 9000;
private ServerSocket serverSocket;
private ArrayList<Socket> clientSockets = new ArrayList<Socket>(); private ArrayList<Socket> clientSockets = new ArrayList<Socket>();
private static final Logger logger = LogManager.getLogger();
public ChatServer() { public ChatServer() {
} }
@@ -18,6 +24,10 @@ public class ChatServer implements Runnable {
this.port = port; this.port = port;
} }
public ServerSocket getServerSocket() {
return serverSocket;
}
private User getOrCreateUser(String username) { private User getOrCreateUser(String username) {
return new User(username); return new User(username);
} }
@@ -36,7 +46,6 @@ public class ChatServer implements Runnable {
private void handleClient(Socket socket) { private void handleClient(Socket socket) {
try { try {
clientSockets.add(socket);
String msg; String msg;
User user = null; User user = null;
@@ -54,6 +63,8 @@ public class ChatServer implements Runnable {
if (msg.toLowerCase().startsWith("/login")) { if (msg.toLowerCase().startsWith("/login")) {
String username = msg.substring(6).strip(); String username = msg.substring(6).strip();
user = getOrCreateUser(username); user = getOrCreateUser(username);
clientSockets.add(socket);
logger.info("Client sie połączył");
} }
} }
} }
@@ -68,7 +79,8 @@ public class ChatServer implements Runnable {
@Override @Override
public void run() { public void run() {
try { try {
ServerSocket serverSocket = new ServerSocket(port); serverSocket = new ServerSocket(port);
while (true) { while (true) {
Socket clientSocket = serverSocket.accept(); Socket clientSocket = serverSocket.accept();

View File

@@ -3,6 +3,7 @@ public class Main {
ChatServer chatServer = new ChatServer(9000); ChatServer chatServer = new ChatServer(9000);
Thread serverThread = new Thread(chatServer); Thread serverThread = new Thread(chatServer);
serverThread.start(); serverThread.start();

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="File" fileName="all.log" immediateFlush="true" append="true" >
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>

View File

@@ -0,0 +1,19 @@
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class ChatServerTest {
@Test
void checkIfServerUp() throws Exception {
ChatServer chatServer = new ChatServer(0);
Thread serverThread = new Thread(chatServer);
serverThread.start();
Thread.sleep(200);
assertNotNull(chatServer.getServerSocket());
assertTrue(chatServer.getServerSocket().isBound());
}
}