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>
</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>

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

View File

@@ -3,6 +3,7 @@ public class Main {
ChatServer chatServer = new ChatServer(9000);
Thread serverThread = new Thread(chatServer);
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());
}
}