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 {
|
2023-10-14 10:07:40 +00:00
|
|
|
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
|
2023-07-11 12:46:21 +00:00
|
|
|
FROM MESSAGE_QUEUE
|
2023-07-03 09:04:08 +00:00
|
|
|
WHERE RECIPIENT_INBOX = ?
|
|
|
|
"""))
|
|
|
|
{
|
2023-10-14 10:07:40 +00:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|