Skip to content

Commit

Permalink
LogFilesFinder: Find log files containing trade id
Browse files Browse the repository at this point in the history
  • Loading branch information
alvasw committed Feb 5, 2025
1 parent d43ecfb commit 5ca57be
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package bisq.core.support.dispute.mediation.logs;

import bisq.common.file.FileUtil;

import java.nio.file.Path;

import java.io.File;
import java.io.FileNotFoundException;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
Expand All @@ -20,4 +24,18 @@ public List<File> find() {
File[] files = dataDirFile.listFiles((dir, name) -> name.endsWith(".log"));
return files == null ? Collections.emptyList() : Arrays.asList(files);
}

public List<File> findForTradeId(String tradeId) throws FileNotFoundException {
List<File> allLogFiles = find();
ArrayList<File> filesContainingTradeId = new ArrayList<>();

for (File file : allLogFiles) {
boolean containsTradeId = FileUtil.doesFileContainKeyword(file, tradeId);
if (containsTradeId) {
filesContainingTradeId.add(file);
}
}

return filesContainingTradeId;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
import static org.hamcrest.Matchers.*;

public class LogFilesFinderTest {
@TempDir Path dataDir;
@TempDir
Path dataDir;

@Test
void noLogFilesTest() {
Expand Down Expand Up @@ -98,4 +99,69 @@ void findOnlyLogFiles() throws IOException {
assertThat(files, hasSize(allLogFiles.size()));
assertThat(files, hasItems(allLogFiles.toArray(new File[0])));
}

@Test
void findNoLogFileWithKeyword() throws IOException {
Path bisqPropertiesPath = dataDir.resolve("bisq.properties");
Files.writeString(bisqPropertiesPath, "Bisq properties");

Path logFilePath = dataDir.resolve("bisq.log");
Files.writeString(logFilePath, "Log file content");

for (int i = 1; i < 5; i++) {
logFilePath = dataDir.resolve("bisq_" + i + ".log");
Files.writeString(logFilePath, "Log file content");
}

var logFilesFinder = new LogFilesFinder(dataDir);
List<File> files = logFilesFinder.findForTradeId("invalid_trade_id");

assertThat(files, empty());
}

@Test
void findSingleLogFileWithKeyword() throws IOException {
Path bisqPropertiesPath = dataDir.resolve("bisq.properties");
Files.writeString(bisqPropertiesPath, "Bisq properties");

Path logFilePath = dataDir.resolve("bisq.log");
Files.writeString(logFilePath, "Log file abcd content");

var logFilesFinder = new LogFilesFinder(dataDir);
List<File> files = logFilesFinder.findForTradeId("abcd");

assertThat(files, hasSize(1));
assertThat(files, hasItem(logFilePath.toFile()));
}

@Test
void findLogFilesWithKeyword() throws IOException {
Path bisqPropertiesPath = dataDir.resolve("bisq.properties");
Files.writeString(bisqPropertiesPath, "Bisq properties");

Path logFilePath = dataDir.resolve("bisq.log");
Files.writeString(logFilePath, "Log file content");

var logFilesContainingTradeId = new ArrayList<File>();

for (int i = 1; i < 5; i++) {
logFilePath = dataDir.resolve("bisq_" + i + ".log");

String logFileContent;
if (i == 1 || i == 3 || i == 4) {
logFileContent = "Log file cont_abcd_ent";
logFilesContainingTradeId.add(logFilePath.toFile());
} else {
logFileContent = "Log file content";
}

Files.writeString(logFilePath, logFileContent);
}

var logFilesFinder = new LogFilesFinder(dataDir);
List<File> files = logFilesFinder.findForTradeId("abcd");

assertThat(files, hasSize(logFilesContainingTradeId.size()));
assertThat(files, hasItems(logFilesContainingTradeId.toArray(new File[0])));
}
}

0 comments on commit 5ca57be

Please sign in to comment.