Add all unit tests
This commit is contained in:
395
tests/ANSRabbitMQ-UnitTest/ANSRabbitMQ-UnitTest.cpp
Normal file
395
tests/ANSRabbitMQ-UnitTest/ANSRabbitMQ-UnitTest.cpp
Normal file
@@ -0,0 +1,395 @@
|
||||
// ANSRabbitMQ-UnitTest.cpp : This file contains the 'main' function. Program execution begins and ends there.
|
||||
//
|
||||
|
||||
#include <iostream>
|
||||
#include "ANSRabbitMQ.h"
|
||||
|
||||
int localRabbitMQTest() {
|
||||
// Create an instance of the ANSRabbitMQ class
|
||||
ANSCENTER::ANSRABBITMQ* rabbitMQ = new ANSCENTER::ANSRABBITMQ();
|
||||
// Initialize the RabbitMQ connection
|
||||
const char* licenseKey = "your_license_key_here"; // Replace with your actual license key
|
||||
int result = CreateANSRabbitMQHandle(&rabbitMQ, licenseKey);
|
||||
if (result == 0) {
|
||||
std::cerr << "Failed to create ANSRabbitMQ handle. Error code: " << result << std::endl;
|
||||
return -1;
|
||||
}
|
||||
// Connect to RabbitMQ server
|
||||
const char* hostname = "127.0.0.1"; // Replace with your RabbitMQ server hostname
|
||||
int port = 5672; // Replace with your RabbitMQ server port
|
||||
const char* vhost = "/"; // Replace with your RabbitMQ virtual host
|
||||
int channelMax = 0; // Set to 0 for default
|
||||
int frameMax = 131072; // Set to 0 for default
|
||||
int heartBeat = 0; // Set to 0 for default
|
||||
const char* userName = "guest"; // Replace with your RabbitMQ username
|
||||
const char* password = "guest"; // Replace with your RabbitMQ password
|
||||
// Set up the exchange and queue names
|
||||
const char* exchange_name = "ans_exchange"; // Replace with your RabbitMQ exchange name
|
||||
const char* exchange_type = "direct"; // Replace with your RabbitMQ exchange type
|
||||
const char* queue_name = "ans_queue"; // Replace with your RabbitMQ queue name
|
||||
const char* binding_key = "ans_binding_key"; // Replace with your RabbitMQ routing key
|
||||
int passive = 0; // Set to 0 for non-passive
|
||||
int durable = 1; // Set to 1 for durable
|
||||
int auto_delete = 0; // Set to 0 for non-auto-delete
|
||||
int internalVal = 0; // Set to 0 for non-internal
|
||||
int channel = 1; // Set to 1 for the first channel
|
||||
int useSSL = 0; // Set to 0 for no SSL
|
||||
// Set up the exchange and queue
|
||||
result = Connect(&rabbitMQ, hostname, port, vhost, channel, userName, password, useSSL);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to connect to RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
int createChannel = CreateChannel(&rabbitMQ, exchange_name, exchange_type, queue_name, binding_key, passive, durable, auto_delete, internalVal);
|
||||
if (createChannel != 1) {
|
||||
std::cerr << "Failed to connect to RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Publish a message to a queue
|
||||
int rate_limit = 0; // Set to 0 for no rate limit
|
||||
int message_count = 1; // Number of messages to publish
|
||||
std::string exchange_name_str = exchange_name; // Exchange name
|
||||
std::string routing_key_str = binding_key; // Routing key
|
||||
|
||||
std::string message = "Hello again - New message"; // Message to publish
|
||||
result = Publish(&rabbitMQ, exchange_name_str.c_str(), routing_key_str.c_str(), message.c_str());
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to publish message to RabbitMQ queue. Error code: " << result << std::endl;
|
||||
Disconnect(&rabbitMQ);
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Get a message from the queue
|
||||
std::string queue_name_str = queue_name; // Queue name
|
||||
std::string received_message;
|
||||
int ack_mode = 0; // Set to 1 for manual acknowledgment
|
||||
result = GetQueueMessage_CPP(&rabbitMQ, queue_name_str.c_str(), ack_mode, received_message);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to get message from RabbitMQ queue. Error code: " << result << std::endl;
|
||||
Disconnect(&rabbitMQ);
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
// Print the received message
|
||||
std::cout << "Received message from RabbitMQ queue: " << received_message << std::endl;
|
||||
|
||||
|
||||
// Disconnect from RabbitMQ server
|
||||
result = Disconnect(&rabbitMQ);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to disconnect from RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
// Release the ANSRabbitMQ handle
|
||||
result = ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to release ANSRabbitMQ handle. Error code: " << result << std::endl;
|
||||
return -1;
|
||||
}
|
||||
// Clean up
|
||||
delete rabbitMQ;
|
||||
// Print success message
|
||||
std::cout << "RabbitMQ test completed successfully!" << std::endl;
|
||||
}
|
||||
|
||||
int AWSRabbitMQTest() {
|
||||
// Create an instance of the ANSRabbitMQ class
|
||||
ANSCENTER::ANSRABBITMQ* rabbitMQ = new ANSCENTER::ANSRABBITMQ();
|
||||
// Initialize the RabbitMQ connection
|
||||
const char* licenseKey = "your_license_key_here"; // Replace with your actual license key
|
||||
int result = CreateANSRabbitMQHandle(&rabbitMQ, licenseKey);
|
||||
if (result == 0) {
|
||||
std::cerr << "Failed to create ANSRabbitMQ handle. Error code: " << result << std::endl;
|
||||
return -1;
|
||||
}
|
||||
// Connect to RabbitMQ server
|
||||
const char* hostname = "b-96dcdde7-e67b-4096-9a46-45421b21f43a.mq.ap-southeast-2.on.aws"; // Replace with your RabbitMQ server hostname
|
||||
int port = 5671; // Replace with your RabbitMQ server port
|
||||
const char* cacert = "C:\\Projects\\ANSVIS\\Documentation\\RabbitMQ_AWS\\AmazonRootCA1.pem";
|
||||
|
||||
const char* vhost = "/"; // Replace with your RabbitMQ virtual host
|
||||
int channelMax = 0; // Set to 0 for default
|
||||
int frameMax = 131072; // Set to 0 for default
|
||||
int heartBeat = 0; // Set to 0 for default
|
||||
const char* userName = "anscenter"; // Replace with your RabbitMQ username
|
||||
const char* password = "Focus20@#ma&!"; // Replace with your RabbitMQ password
|
||||
// Set up the exchange and queue names
|
||||
const char* exchange_name = "ans_exchange"; // Replace with your RabbitMQ exchange name
|
||||
const char* exchange_type = "direct"; // Replace with your RabbitMQ exchange type
|
||||
const char* queue_name = "ans_queue"; // Replace with your RabbitMQ queue name
|
||||
const char* binding_key = "ans_binding_key"; // Replace with your RabbitMQ routing key
|
||||
int passive = 0; // Set to 0 for non-passive
|
||||
int durable = 1; // Set to 1 for durable
|
||||
int auto_delete = 0; // Set to 0 for non-auto-delete
|
||||
int internalVal = 0; // Set to 0 for non-internal
|
||||
int channel = 1; // Set to 1 for the first channel
|
||||
int useSSL = 1; // Set to 0 for no SSL
|
||||
|
||||
int setupConfigure = ConfigureSSL(&rabbitMQ, cacert, "", "", 1, 1);
|
||||
// Set up the exchange and queue
|
||||
result = Connect(&rabbitMQ, hostname, port, vhost, channel, userName, password, useSSL);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to connect to RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
int createChannel = CreateChannel(&rabbitMQ, exchange_name, exchange_type, queue_name, binding_key, passive, durable, auto_delete, internalVal);
|
||||
if (createChannel != 1) {
|
||||
std::cerr << "Failed to connect to RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Publish a message to a queue
|
||||
int rate_limit = 0; // Set to 0 for no rate limit
|
||||
int message_count = 1; // Number of messages to publish
|
||||
std::string exchange_name_str = exchange_name; // Exchange name
|
||||
std::string routing_key_str = binding_key; // Routing key
|
||||
|
||||
std::string message = "Hello again - New message"; // Message to publish
|
||||
result = Publish(&rabbitMQ, exchange_name_str.c_str(), routing_key_str.c_str(), message.c_str());
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to publish message to RabbitMQ queue. Error code: " << result << std::endl;
|
||||
Disconnect(&rabbitMQ);
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Get a message from the queue
|
||||
std::string queue_name_str = queue_name; // Queue name
|
||||
std::string received_message;
|
||||
int ack_mode = 0; // Set to 1 for manual acknowledgment
|
||||
result = GetQueueMessage_CPP(&rabbitMQ, queue_name_str.c_str(), ack_mode, received_message);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to get message from RabbitMQ queue. Error code: " << result << std::endl;
|
||||
Disconnect(&rabbitMQ);
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
// Print the received message
|
||||
std::cout << "Received message from RabbitMQ queue: " << received_message << std::endl;
|
||||
|
||||
|
||||
// Disconnect from RabbitMQ server
|
||||
result = Disconnect(&rabbitMQ);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to disconnect from RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
// Release the ANSRabbitMQ handle
|
||||
result = ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to release ANSRabbitMQ handle. Error code: " << result << std::endl;
|
||||
return -1;
|
||||
}
|
||||
// Clean up
|
||||
delete rabbitMQ;
|
||||
// Print success message
|
||||
std::cout << "RabbitMQ test completed successfully!" << std::endl;
|
||||
}
|
||||
|
||||
int AWSRabbitMQTest1() {
|
||||
// Create an instance of the ANSRabbitMQ class
|
||||
ANSCENTER::ANSRABBITMQ* rabbitMQ = new ANSCENTER::ANSRABBITMQ();
|
||||
// Initialize the RabbitMQ connection
|
||||
const char* licenseKey = "your_license_key_here"; // Replace with your actual license key
|
||||
int result = CreateANSRabbitMQHandle(&rabbitMQ, licenseKey);
|
||||
if (result == 0) {
|
||||
std::cerr << "Failed to create ANSRabbitMQ handle. Error code: " << result << std::endl;
|
||||
return -1;
|
||||
}
|
||||
// Connect to RabbitMQ server
|
||||
const char* hostname = "b-96dcdde7-e67b-4096-9a46-45421b21f43a.mq.ap-southeast-2.on.aws"; // Replace with your RabbitMQ server hostname
|
||||
int port = 5671; // Replace with your RabbitMQ server port
|
||||
const char* cacert = "C:\\Projects\\ANSVIS\\Documentation\\RabbitMQ_AWS\\AmazonRootCA1.pem";
|
||||
|
||||
const char* vhost = "aibox"; // Replace with your RabbitMQ virtual host
|
||||
int channelMax = 0; // Set to 0 for default
|
||||
int frameMax = 131072; // Set to 0 for default
|
||||
int heartBeat = 0; // Set to 0 for default
|
||||
const char* userName = "ansaibox"; // Replace with your RabbitMQ username
|
||||
const char* password = "AnsSYD20@$"; // Replace with your RabbitMQ password
|
||||
// Set up the exchange and queue names
|
||||
const char* exchange_name = "ans_exchange"; // Replace with your RabbitMQ exchange name
|
||||
const char* exchange_type = "direct"; // Replace with your RabbitMQ exchange type
|
||||
const char* queue_name = "ans_queue"; // Replace with your RabbitMQ queue name
|
||||
const char* binding_key = "ans_binding_key"; // Replace with your RabbitMQ routing key
|
||||
int passive = 0; // Set to 0 for non-passive
|
||||
int durable = 1; // Set to 1 for durable
|
||||
int auto_delete = 0; // Set to 0 for non-auto-delete
|
||||
int internalVal = 0; // Set to 0 for non-internal
|
||||
int channel = 1; // Set to 1 for the first channel
|
||||
int useSSL = 1; // Set to 0 for no SSL
|
||||
|
||||
int setupConfigure = ConfigureSSL(&rabbitMQ, cacert, "", "", 1, 1);
|
||||
// Set up the exchange and queue
|
||||
result = Connect(&rabbitMQ, hostname, port, vhost, channel, userName, password, useSSL);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to connect to RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
int createChannel = CreateChannel(&rabbitMQ, exchange_name, exchange_type, queue_name, binding_key, passive, durable, auto_delete, internalVal);
|
||||
if (createChannel != 1) {
|
||||
std::cerr << "Failed to connect to RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Publish a message to a queue
|
||||
int rate_limit = 0; // Set to 0 for no rate limit
|
||||
int message_count = 1; // Number of messages to publish
|
||||
std::string exchange_name_str = exchange_name; // Exchange name
|
||||
std::string routing_key_str = binding_key; // Routing key
|
||||
|
||||
std::string message = "Hello again - New message"; // Message to publish
|
||||
result = Publish(&rabbitMQ, exchange_name_str.c_str(), routing_key_str.c_str(), message.c_str());
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to publish message to RabbitMQ queue. Error code: " << result << std::endl;
|
||||
Disconnect(&rabbitMQ);
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Get a message from the queue
|
||||
std::string queue_name_str = queue_name; // Queue name
|
||||
std::string received_message;
|
||||
int ack_mode = 0; // Set to 1 for manual acknowledgment
|
||||
result = GetQueueMessage_CPP(&rabbitMQ, queue_name_str.c_str(), ack_mode, received_message);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to get message from RabbitMQ queue. Error code: " << result << std::endl;
|
||||
Disconnect(&rabbitMQ);
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
// Print the received message
|
||||
std::cout << "Received message from RabbitMQ queue: " << received_message << std::endl;
|
||||
|
||||
|
||||
// Disconnect from RabbitMQ server
|
||||
result = Disconnect(&rabbitMQ);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to disconnect from RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
// Release the ANSRabbitMQ handle
|
||||
result = ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to release ANSRabbitMQ handle. Error code: " << result << std::endl;
|
||||
return -1;
|
||||
}
|
||||
// Clean up
|
||||
delete rabbitMQ;
|
||||
// Print success message
|
||||
std::cout << "RabbitMQ test completed successfully!" << std::endl;
|
||||
}
|
||||
|
||||
|
||||
int SynologyRabbitMQTest() {
|
||||
// Create an instance of the ANSRabbitMQ class
|
||||
ANSCENTER::ANSRABBITMQ* rabbitMQ = new ANSCENTER::ANSRABBITMQ();
|
||||
// Initialize the RabbitMQ connection
|
||||
const char* licenseKey = "your_license_key_here"; // Replace with your actual license key
|
||||
int result = CreateANSRabbitMQHandle(&rabbitMQ, licenseKey);
|
||||
if (result == 0) {
|
||||
std::cerr << "Failed to create ANSRabbitMQ handle. Error code: " << result << std::endl;
|
||||
return -1;
|
||||
}
|
||||
// Connect to RabbitMQ server
|
||||
const char* hostname = "anscenter.ddns.net";// "125.168.44.233";// "192.168.1.45"; // Replace with your RabbitMQ server hostname
|
||||
int port = 5672; // Replace with your RabbitMQ server port
|
||||
const char* cacert = "C:\\Projects\\ANSVIS\\Documentation\\RabbitMQ_AWS\\AmazonRootCA1.pem";
|
||||
|
||||
const char* vhost = "aibox"; // Replace with your RabbitMQ virtual host
|
||||
int channelMax = 0; // Set to 0 for default
|
||||
int frameMax = 131072; // Set to 0 for default
|
||||
int heartBeat = 0; // Set to 0 for default
|
||||
const char* userName = "ansaibox"; // Replace with your RabbitMQ username
|
||||
const char* password = "AnsSYD20@$"; // Replace with your RabbitMQ password
|
||||
// Set up the exchange and queue names
|
||||
const char* exchange_name = "ans_exchange"; // Replace with your RabbitMQ exchange name
|
||||
const char* exchange_type = "direct"; // Replace with your RabbitMQ exchange type
|
||||
const char* queue_name = "ans_queue"; // Replace with your RabbitMQ queue name
|
||||
const char* binding_key = "ans_binding_key"; // Replace with your RabbitMQ routing key
|
||||
int passive = 0; // Set to 0 for non-passive
|
||||
int durable = 1; // Set to 1 for durable
|
||||
int auto_delete = 0; // Set to 0 for non-auto-delete
|
||||
int internalVal = 0; // Set to 0 for non-internal
|
||||
int channel = 1; // Set to 1 for the first channel
|
||||
int useSSL = 1; // Set to 0 for no SSL
|
||||
|
||||
int setupConfigure = ConfigureSSL(&rabbitMQ, cacert, "", "", 1, 1);
|
||||
// Set up the exchange and queue
|
||||
result = Connect(&rabbitMQ, hostname, port, vhost, channel, userName, password, useSSL);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to connect to RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
int createChannel = CreateChannel(&rabbitMQ, exchange_name, exchange_type, queue_name, binding_key, passive, durable, auto_delete, internalVal);
|
||||
if (createChannel != 1) {
|
||||
std::cerr << "Failed to connect to RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Publish a message to a queue
|
||||
int rate_limit = 0; // Set to 0 for no rate limit
|
||||
int message_count = 1; // Number of messages to publish
|
||||
std::string exchange_name_str = exchange_name; // Exchange name
|
||||
std::string routing_key_str = binding_key; // Routing key
|
||||
|
||||
std::string message = "Hello again - New message"; // Message to publish
|
||||
result = Publish(&rabbitMQ, exchange_name_str.c_str(), routing_key_str.c_str(), message.c_str());
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to publish message to RabbitMQ queue. Error code: " << result << std::endl;
|
||||
Disconnect(&rabbitMQ);
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Get a message from the queue
|
||||
std::string queue_name_str = queue_name; // Queue name
|
||||
std::string received_message;
|
||||
int ack_mode = 0; // Set to 1 for manual acknowledgment
|
||||
result = GetQueueMessage_CPP(&rabbitMQ, queue_name_str.c_str(), ack_mode, received_message);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to get message from RabbitMQ queue. Error code: " << result << std::endl;
|
||||
Disconnect(&rabbitMQ);
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
// Print the received message
|
||||
std::cout << "Received message from RabbitMQ queue: " << received_message << std::endl;
|
||||
|
||||
|
||||
// Disconnect from RabbitMQ server
|
||||
result = Disconnect(&rabbitMQ);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to disconnect from RabbitMQ server. Error code: " << result << std::endl;
|
||||
ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
return -1;
|
||||
}
|
||||
// Release the ANSRabbitMQ handle
|
||||
result = ReleaseANSRabbitMQHandle(&rabbitMQ);
|
||||
if (result != 1) {
|
||||
std::cerr << "Failed to release ANSRabbitMQ handle. Error code: " << result << std::endl;
|
||||
return -1;
|
||||
}
|
||||
// Clean up
|
||||
delete rabbitMQ;
|
||||
// Print success message
|
||||
std::cout << "RabbitMQ test completed successfully!" << std::endl;
|
||||
}
|
||||
int main()
|
||||
{
|
||||
SynologyRabbitMQTest();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user