53 lines
1.5 KiB
Go
53 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
|
|
"git.ipao.vip/rogee/go-sip/internal/mq"
|
|
amqp "github.com/rabbitmq/amqp091-go"
|
|
)
|
|
|
|
func TestSaaSMockProvisionRejectsSharedVHost(t *testing.T) {
|
|
data, err := loadDataset(testDataDir(t), testDispatcher)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := provisionMQ("amqp://guest:test-only@127.0.0.1:5672/", data); err == nil || !strings.Contains(err.Error(), "dedicated") {
|
|
t.Fatalf("SaaS simulator must not touch the default/shared vhost: %v", err)
|
|
}
|
|
}
|
|
|
|
func TestSaaSMockProvisionsDispatcherTopology(t *testing.T) {
|
|
brokerURL := os.Getenv("SAAS_MOCK_TEST_BROKER_URL")
|
|
if brokerURL == "" {
|
|
t.Skip("requires an explicitly provisioned, private saas-mock-* RabbitMQ vhost")
|
|
}
|
|
data, err := loadDataset(testDataDir(t), testDispatcher)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := provisionMQ(brokerURL, data); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
broker, err := mq.Open(brokerURL, testDispatcher, 1)
|
|
if err != nil {
|
|
t.Fatalf("Dispatcher must be able to verify the SaaS-owned topology: %v", err)
|
|
}
|
|
defer broker.Close()
|
|
conn, err := amqp.Dial(brokerURL)
|
|
if err != nil {
|
|
t.Fatal("read back SaaS-provisioned task queue")
|
|
}
|
|
defer conn.Close()
|
|
channel, err := conn.Channel()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer channel.Close()
|
|
if _, err := channel.QueueDeclarePassive("agent-call.d."+testDispatcher+".task.task-full.v1", true, false, false, false, nil); err != nil {
|
|
t.Fatalf("task queue not precreated by SaaS simulator: %v", err)
|
|
}
|
|
}
|