grmqt

package
v1.55.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2025 License: MIT Imports: 7 Imported by: 0

README

Package grmqt

Пакет grmqt предоставляет вспомогательную обёртку над RabbitMQ-клиентом для функционального тестирования с автоматическим созданием и удалением виртуального хоста, а также публикацией и получением сообщений.

Types

Client

Структура Client инкапсулирует соединение с RabbitMQ и предоставляет методы для удобной работы с очередями, публикацией сообщений и конфигурацией клиента grmqx в тестах.

Methods:

func New(t *test.Test) *Client

Создаёт новый экземпляр клиента. Создаёт виртуальный хост RabbitMQ для теста, настраивает соединение и клиент grmqx. Все ресурсы автоматически очищаются при завершении теста.

(c *Client) ConnectionConfig() grmqx.Connection

Возвращает конфигурацию соединения grmqx.Connection, используемую клиентом.

(c *Client) QueueLength(queue string) int

Возвращает количество сообщений в указанной очереди.

(c *Client) Upgrade(config grmqx.Config)

Вызывает метод Upgrade у клиента grmqx, подставляя URL из конфигурации соединения.

(c *Client) PublishJson(exchange string, routingKey string, data any)

Публикует сообщение в формате JSON в указанный обменник и routing key.

(c *Client) Publish(exchange string, routingKey string, messages ...amqp091.Publishing)

Публикует одно или несколько сообщений в указанный обменник и routing key.

(c *Client) DrainMessage(queue string) amqp091.Delivery

Получает одно сообщение из очереди. Тест завершится с ошибкой, если сообщение отсутствует.

(c *Client) useChannel(f func(ch *amqp091.Channel))

Вспомогательный метод для работы с каналом AMQP. Открывает, передаёт в функцию f, а затем закрывает канал.

Usage

Default usage flow
package mypkg_test

import (
	"testing"

	"github.com/txix-open/isp-kit/test"
	"github.com/txix-open/isp-kit/test/grpct"
)

func TestPublishAndDrain(t *testing.T) {
	testCtx := test.New(t)
	client := grmqt.New(testCtx)

	client.PublishJson("my-exchange", "my-queue", map[string]string{"hello": "world"})
	msg := client.DrainMessage("my-queue")
	testCtx.Assert().Equal("application/json", msg.ContentType)
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	GrmqxCli *grmqx.Client
	// contains filtered or unexported fields
}

func New

func New(t *test.Test) *Client

nolint:nosprintfhostport,noctx,bodyclose,mnd

func (*Client) ConnectionConfig

func (c *Client) ConnectionConfig() grmqx.Connection

func (*Client) DrainMessage

func (c *Client) DrainMessage(queue string) amqp091.Delivery

func (*Client) Publish

func (c *Client) Publish(exchange string, routingKey string, messages ...amqp091.Publishing)

func (*Client) PublishJson

func (c *Client) PublishJson(exchange string, routingKey string, data any)

func (*Client) QueueLength

func (c *Client) QueueLength(queue string) int

func (*Client) Upgrade

func (c *Client) Upgrade(config grmqx.Config)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL