Output buffer to write to.
IRCEvent to construct assert statements for.
Number of tabs to indent the output by.
IRCEvent event; Appender!(char[]) sink; sink.putEventAssertBlock(event, 0);
import lu.assert_ : assertMultilineEquals; import std.array : Appender; Appender!(char[]) sink; sink.reserve(1024); IRCClient client; IRCServer server; auto parser = IRCParser(client, server); immutable event = parser.toIRCEvent(":zorael!~NaN@2001:41d0:2:80b4:: PRIVMSG #flerrp :kameloso: 8ball"); sink.putEventAssertBlock(event, 0); enum expected = "{ enum input = `:zorael!~NaN@2001:41d0:2:80b4:: PRIVMSG #flerrp :kameloso: 8ball`; immutable event = parser.toIRCEvent(input); with (event) { assert((type == IRCEvent.Type.CHAN), type.toString()); assert((sender.nickname == \"zorael\"), sender.nickname); assert((sender.ident == \"~NaN\"), sender.ident); assert((sender.address == \"2001:41d0:2:80b4::\"), sender.address); assert((channel.name == \"#flerrp\"), channel.name); assert((content == \"kameloso: 8ball\"), content); } }"; assertMultilineEquals(expected, sink[]);
Constructs assert block deltastrings for an IRCEvent and writes them to an output range.
The deltastrings express the differences between the struct compared to its .init state.