From 159de38b297019462d8b9cba7cf67c4b16af6be8 Mon Sep 17 00:00:00 2001 From: romangraef Date: Sat, 10 Nov 2018 22:07:41 +0100 Subject: [PATCH] added tests for ability extension functionality --- .../api/bot/AbilityBotExtension.java | 26 ++++++++++++ .../abilitybots/api/bot/ExtensionTest.java | 36 ++++++++++++++++ .../api/bot/ExtensionUsingBot.java | 41 +++++++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/AbilityBotExtension.java create mode 100644 telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/ExtensionTest.java create mode 100644 telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/ExtensionUsingBot.java diff --git a/telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/AbilityBotExtension.java b/telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/AbilityBotExtension.java new file mode 100644 index 00000000..b0a1ccef --- /dev/null +++ b/telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/AbilityBotExtension.java @@ -0,0 +1,26 @@ +package org.telegram.abilitybots.api.bot; + +import org.telegram.abilitybots.api.objects.Ability; +import org.telegram.abilitybots.api.util.AbilityExtension; + +import static org.telegram.abilitybots.api.objects.Locality.ALL; +import static org.telegram.abilitybots.api.objects.Privacy.PUBLIC; + +public class AbilityBotExtension implements AbilityExtension { + private String name; + + public AbilityBotExtension(String name) { + this.name = name; + } + + public Ability abc() { + return Ability.builder() + .name(this.name + "0abc") + .info("Test ability") + .locality(ALL) + .privacy(PUBLIC) + .action(messageContext -> { + }) + .build(); + } +} diff --git a/telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/ExtensionTest.java b/telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/ExtensionTest.java new file mode 100644 index 00000000..bf6d3633 --- /dev/null +++ b/telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/ExtensionTest.java @@ -0,0 +1,36 @@ +package org.telegram.abilitybots.api.bot; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.telegram.abilitybots.api.objects.Ability; + +import static junit.framework.TestCase.assertTrue; + +public class ExtensionTest { + private ExtensionUsingBot bot; + + @Before + public void setUp() { + bot = new ExtensionUsingBot(); + } + + @After + public void teardown() { + bot = null; + } + + + @Test + public void methodReturningAbilities() { + assertTrue("Failed to find Ability in directly declared in root extension/bot", hasAbilityNamed("direct")); + assertTrue("Failed to find Ability in directly declared in extension returned by method returning the AbilityExtension class", hasAbilityNamed("returningSuperClass0abc")); + assertTrue("Failed to find Ability in directly declared in extension returned by method returning the AbilityExtension subclass", hasAbilityNamed("returningSubClass0abc")); + } + + private boolean hasAbilityNamed(String name) { + return bot.abilities().values().stream().map(Ability::name).anyMatch(name::equals); + } + + +} diff --git a/telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/ExtensionUsingBot.java b/telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/ExtensionUsingBot.java new file mode 100644 index 00000000..4cb593e7 --- /dev/null +++ b/telegrambots-abilities/src/test/java/org/telegram/abilitybots/api/bot/ExtensionUsingBot.java @@ -0,0 +1,41 @@ +package org.telegram.abilitybots.api.bot; + +import org.telegram.abilitybots.api.objects.Ability; +import org.telegram.abilitybots.api.util.AbilityExtension; + +import static org.telegram.abilitybots.api.db.MapDBContext.offlineInstance; +import static org.telegram.abilitybots.api.objects.Locality.ALL; +import static org.telegram.abilitybots.api.objects.Privacy.PUBLIC; + +public class ExtensionUsingBot extends AbilityBot { + public ExtensionUsingBot() { + super("", "", offlineInstance("testing")); + } + + + @Override + public int creatorId() { + return 0; + } + + public AbilityBotExtension methodReturningExtensionSubClass() { + return new AbilityBotExtension("returningSubClass"); + } + + public AbilityExtension methodReturningExtensionSuperClass() { + return new AbilityBotExtension("returningSuperClass"); + } + + public Ability methodReturningAbility() { + return Ability.builder() + .name("direct") + .info("Test ability") + .locality(ALL) + .privacy(PUBLIC) + .action(messageContext -> { + }) + .build(); + } + + +}