Files
LocalChatApp/src/test/MainTest.java
T
2026-02-08 23:58:00 +08:00

104 lines
3.4 KiB
Java

package test;
import server.data.ServerData;
import util.FileUtil;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import static org.junit.jupiter.api.Assertions.*;
public class MainTest {
@Test
public void testLoadEmptyFile() throws IOException {
// 测试加载空文件的情况
Path dataPath = Paths.get(FileUtil.DATA_FILE, FileUtil.GROUPS_DIR, FileUtil.SERVER_DATA_FILENAME);
File folder = dataPath.getParent().toFile();
if (!folder.exists()) {
folder.mkdirs();
}
// 创建空文件
Files.write(dataPath, new byte[0]);
System.out.println("Created empty data file: " + dataPath.toAbsolutePath());
// 重置实例,强制重新加载
ServerData.resetInstance();
// 测试获取实例是否返回非空对象
ServerData data = ServerData.getInstance();
assertNotNull(data);
assertNotNull(data.getServerGroups()); // 确保群组映射不为空
// assertTrue(data.getServerGroups().isEmpty()); // 可能会初始化空映射
System.out.println("Test passed: Empty file handled correctly.");
// 删除测试文件
Files.deleteIfExists(dataPath);
}
@Test
public void testLoadMissingFile() {
// 测试加载缺失文件的情况
Path dataPath = Paths.get(FileUtil.DATA_FILE, FileUtil.GROUPS_DIR, FileUtil.SERVER_DATA_FILENAME);
try {
Files.deleteIfExists(dataPath);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Ensured data file is missing.");
// 重置实例,强制重新加载
ServerData.resetInstance();
// 测试获取实例是否返回非空对象
ServerData data = ServerData.getInstance();
assertNotNull(data);
assertNotNull(data.getServerGroups()); // 确保群组映射不为空
assertTrue(data.getServerGroups().isEmpty()); // 可能会初始化空映射
System.out.println("Test passed: Missing file handled correctly.");
}
@Test
public void testLoadValidFile() throws IOException {
// 测试加载有效文件的情况
System.out.println("Starting testLoadValidFile...");
// 测试加载有效文件的情况
Path dataPath = Paths.get(FileUtil.DATA_FILE, FileUtil.GROUPS_DIR, FileUtil.SERVER_DATA_FILENAME);
try {
Files.deleteIfExists(dataPath);
} catch (IOException e) {
e.printStackTrace();
}
// 初始化 ServerData 实例,确保其为空
ServerData.resetInstance();
ServerData data = ServerData.getInstance();
System.out.println("Initialized ServerData for saving.");
// 保存 ServerData 实例,确保文件存在
data.saveServerData();
System.out.println("Saved ServerData.");
// 重置实例,强制重新加载
ServerData.resetInstance();
System.out.println("Reset instance. Now calling getInstance() to trigger load...");
// 测试获取实例是否返回非空对象
// 确保加载的 ServerData 实例不为空
ServerData loaded = ServerData.getInstance();
assertNotNull(loaded);
System.out.println("Test passed: Valid file loaded correctly.");
}
}