MarginaliaSearch/code/libraries/message-queue/test/nu/marginalia/mq/MqTestUtil.java

52 lines
1.8 KiB
Java
Raw Normal View History

2023-07-04 15:42:06 +00:00
package nu.marginalia.mq;
2023-07-03 09:04:08 +00:00
import com.zaxxer.hikari.HikariDataSource;
import org.junit.jupiter.api.Assertions;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class MqTestUtil {
public static List<MqMessageRow> getMessages(HikariDataSource dataSource, String inbox, int node) {
2023-07-03 09:04:08 +00:00
List<MqMessageRow> messages = new ArrayList<>();
try (var conn = dataSource.getConnection();
var stmt = conn.prepareStatement("""
SELECT ID, RELATED_ID,
SENDER_INBOX, RECIPIENT_INBOX,
FUNCTION, PAYLOAD,
STATE,
OWNER_INSTANCE, OWNER_TICK,
CREATED_TIME, UPDATED_TIME,
TTL
FROM MESSAGE_QUEUE
2023-07-03 09:04:08 +00:00
WHERE RECIPIENT_INBOX = ?
"""))
{
stmt.setString(1, inbox+":"+node);
2023-07-03 09:04:08 +00:00
var rsp = stmt.executeQuery();
while (rsp.next()) {
messages.add(new MqMessageRow(
rsp.getLong("ID"),
rsp.getLong("RELATED_ID"),
rsp.getString("SENDER_INBOX"),
rsp.getString("RECIPIENT_INBOX"),
rsp.getString("FUNCTION"),
rsp.getString("PAYLOAD"),
MqMessageState.valueOf(rsp.getString("STATE")),
rsp.getString("OWNER_INSTANCE"),
rsp.getLong("OWNER_TICK"),
rsp.getTimestamp("CREATED_TIME").getTime(),
rsp.getTimestamp("UPDATED_TIME").getTime(),
rsp.getLong("TTL")
));
}
}
catch (SQLException ex) {
Assertions.fail(ex);
}
return messages;
}
}