Skip to content
This repository was archived by the owner on Jan 2, 2026. It is now read-only.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

113 Commits

Repository files navigation

JDATesting

Test framework for the JDA Discord api wrapper.

Installation

Download the jar file from the release page.

Maven

<repository>
<id>coly</id>
<url>https://m2.coly.dev/releases</url>
</repository>
<dependency>
<groupId>dev.coly</groupId>
<artifactId>JDATesting</artifactId>
<version>VERSION</version>
</dependency>

Usage

This project should be used to your JDA Discord bot using maven tests.

Examples

This examples use junit.

For default commands using GuildMessageReceivedEvent:

@TestpublicvoidtestAssertGuildMessageReceivedEvent() {
JDATesting.assertGuildMessageReceivedEvent(newTestEventListener(), ".ping", "Pong!");
}
publicstaticclassTestEventListenerimplementsEventListener {
@OverridepublicvoidonEvent(@NotNullGenericEventevent) {
if (eventinstanceofGuildMessageReceivedEvent) {
GuildMessageReceivedEvente = (GuildMessageReceivedEvent) event;
if (e.getMessage().getContentDisplay().equals(".ping")) {
e.getChannel().sendMessage("Pong!").queue();
}
}
}
}
@TestpublicvoidtestTestGuildMessageReceivedEvent() {
try {
Assertions.assertEquals("Pong!",
JDATesting.testGuildMessageReceivedEvent(newTestEventListener(), ".ping").getContentRaw());
} catch (InterruptedExceptione) {
Assertions.fail(e);
}
}
publicstaticclassTestEventListenerimplementsEventListener {
@OverridepublicvoidonEvent(@NotNullGenericEventevent) {
if (eventinstanceofGuildMessageReceivedEvent) {
GuildMessageReceivedEvente = (GuildMessageReceivedEvent) event;
if (e.getMessage().getContentDisplay().equals(".ping")) {
e.getChannel().sendMessage("Pong!").queue();
}
}
}
}

For Slash Commands:

@TestpublicvoidtestAssertSlashCommandEvent() {
JDATesting.assertSlashCommandEvent(newTestEventListener(), "ping", newHashMap<>(), "Pong!");
}
@TestpublicvoidtestAssertSlashCommandEventWithOptions() {
Map<String, Object> map = newHashMap<>();
map.put("bool", true);
map.put("str", "text");
map.put("number", 42);
map.put("user", JDAObjects.getFakeUser());
JDATesting.assertSlashCommandEvent(newTestEventListener(), "options", map, "bool: true - str: text - number: 42 - user: User#0000");
}
@TestpublicvoidtestAssertSlashCommandEventWithEmbeds() {
JDATesting.assertSlashCommandEvent(newTestEventListener(), "embed", newHashMap<>(), newArrayList<>(Collections.singleton(TestEventListener.getTestEmbed())));
}
publicclassTestEventListenerimplementsEventListener {
@OverridepublicvoidonEvent(@NotNullGenericEventevent) {
if (eventinstanceofSlashCommandEvent) {
SlashCommandEvente = (SlashCommandEvent) event;
switch (e.getName()) {
case"embed":
e.replyEmbeds(getTestEmbed()).queue();
break;
case"ping":
e.reply("Pong!").queue();
break;
case"options":
e.reply("bool: " + Objects.requireNonNull(e.getOption("bool")).getAsBoolean() +
" - str: " + Objects.requireNonNull(e.getOption("str")).getAsString() +
" - number: " + Objects.requireNonNull(e.getOption("number")).getAsLong() +
" - user: " + Objects.requireNonNull(e.getOption("user")).getAsUser().getAsTag()).queue();
}
}
}
publicstaticMessageEmbedgetTestEmbed() {
EmbedBuilderembedBuilder = newEmbedBuilder();
embedBuilder.setTitle("Test Embed");
embedBuilder.setAuthor("Coly Team");
embedBuilder.addField("Test Name", "Test Value", true);
returnembedBuilder.build();
}
}

About

Test framework for the JDA Discord api wrapper.

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages