nats.zig/tests/message.zig
torque b453ec3d92
all: add missing copyright headers
Tests are CC0/public domain because there's no reason for them not to
be. Examples are also CC0/public domain, but this may be a little bit
weird because they are largely straightforward ports of examples from
nats.c which carry the Apache license. However, I personally wrote
them against the zig bindings and I doubt anyone will end up in a
court of law due to their software containing uselessly trivial
example code.
2023-09-02 15:04:46 -07:00

61 lines
1.8 KiB
Zig

// This file is licensed under the CC0 1.0 license.
// See: https://creativecommons.org/publicdomain/zero/1.0/legalcode
const std = @import("std");
const nats = @import("nats");
test "message: create message" {
const subject = "hello";
const reply = "reply";
const data = "world";
// have to initialize the library so the reference counter can correctly destroy
// objects, otherwise we segfault on trying to free the memory.
try nats.init(nats.default_spin_count);
defer nats.deinit();
const message = try nats.Message.create(subject, reply, data);
defer message.destroy();
const message2 = try nats.Message.create(subject, null, data);
defer message2.destroy();
const message3 = try nats.Message.create(subject, data, null);
defer message3.destroy();
const message4 = try nats.Message.create(subject, null, null);
defer message4.destroy();
}
test "message: get subject" {
try nats.init(nats.default_spin_count);
defer nats.deinit();
const subject = "hello";
const message = try nats.Message.create(subject, null, null);
defer message.destroy();
const received = message.getSubject();
try std.testing.expectEqualStrings(subject, received);
}
test "message: get reply" {
try nats.init(nats.default_spin_count);
defer nats.deinit();
const subject = "hello";
const reply = "reply";
const message = try nats.Message.create(subject, reply, null);
defer message.destroy();
const received = message.getReply() orelse return error.TestUnexpectedResult;
try std.testing.expectEqualStrings(reply, received);
const message2 = try nats.Message.create(subject, null, null);
defer message2.destroy();
const received2 = message2.getReply();
try std.testing.expect(received2 == null);
}