2025-07-23 12:55:53 +02:00
|
|
|
package nu.marginalia.svc;
|
2024-05-20 18:02:46 +02:00
|
|
|
|
|
|
|
import nu.marginalia.storage.FileStorageService;
|
|
|
|
import nu.marginalia.storage.model.FileStorage;
|
|
|
|
import nu.marginalia.storage.model.FileStorageId;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import org.mockito.Mockito;
|
|
|
|
import spark.Spark;
|
|
|
|
|
2024-05-22 12:55:08 +02:00
|
|
|
import java.nio.file.Files;
|
|
|
|
import java.nio.file.Path;
|
2024-05-20 18:02:46 +02:00
|
|
|
import java.sql.DriverManager;
|
|
|
|
import java.sql.SQLException;
|
|
|
|
|
|
|
|
import static org.mockito.Mockito.when;
|
|
|
|
|
|
|
|
class ExecutorFileTransferServiceTest {
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void test() throws SQLException, InterruptedException {
|
2024-05-22 12:55:08 +02:00
|
|
|
// Test requires this file to exist
|
|
|
|
if (!Files.exists(Path.of("/tmp/crawl.parquet"))) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2024-05-20 18:02:46 +02:00
|
|
|
var fileStorage = Mockito.mock(FileStorageService.class);
|
|
|
|
|
|
|
|
when(fileStorage.getStorage(Mockito.any(FileStorageId.class))).thenReturn(new FileStorage(null,
|
|
|
|
null,
|
|
|
|
null,
|
|
|
|
null,
|
|
|
|
"/tmp",
|
|
|
|
null,
|
|
|
|
null));
|
|
|
|
|
|
|
|
var svc = new ExecutorFileTransferService(fileStorage);
|
|
|
|
|
|
|
|
Spark.port(9998);
|
|
|
|
Spark.get("/transfer/file/:fid", svc::transferFile);
|
|
|
|
Spark.head("/transfer/file/:fid", svc::transferFile);
|
|
|
|
|
|
|
|
Spark.init();
|
|
|
|
|
|
|
|
Thread.sleep(1000);
|
|
|
|
|
|
|
|
|
2024-05-22 12:55:08 +02:00
|
|
|
try (var conn = DriverManager.getConnection("jdbc:duckdb:");
|
|
|
|
var stmt = conn.createStatement()) {
|
|
|
|
var rs = stmt.executeQuery("""
|
|
|
|
SELECT COUNT(*) AS cnt, httpStatus
|
|
|
|
FROM 'http://localhost:9998/transfer/file/0?path=crawl.parquet'
|
|
|
|
GROUP BY httpStatus
|
|
|
|
""");
|
|
|
|
while (rs.next()) {
|
|
|
|
System.out.println(rs.getInt("CNT") + " " + rs.getInt("httpStatus"));
|
|
|
|
}
|
2024-05-20 18:02:46 +02:00
|
|
|
}
|
2024-05-22 12:55:08 +02:00
|
|
|
|
|
|
|
Spark.stop();
|
2024-05-20 18:02:46 +02:00
|
|
|
}
|
|
|
|
}
|