Change global flag to always return true and make ability flags as predicates

This commit is contained in:
Abbas Abou Daya 2017-10-31 23:06:03 -04:00
parent 3414d8c9f5
commit 1f5706b525
3 changed files with 7 additions and 11 deletions

View File

@ -220,15 +220,15 @@ public abstract class AbilityBot extends TelegramLongPollingBot {
}
/**
* Test the update against the provided global flags. The default implementation requires a {@link Flag#MESSAGE}.
* Test the update against the provided global flags. The default implementation is a passthrough to all updates.
* <p>
* This method should be <b>overridden</b> if the user wants updates that don't require a MESSAGE to pass through.
* This method should be <b>overridden</b> if the user wants to restrict bot usage to only certain updates.
*
* @param update a Telegram {@link Update}
* @return <tt>true</tt> if the update satisfies the global flags
*/
protected boolean checkGlobalFlags(Update update) {
return MESSAGE.test(update);
return true;
}
/**

View File

@ -149,7 +149,7 @@ public final class Ability {
private Consumer<MessageContext> consumer;
private Consumer<MessageContext> postConsumer;
private List<Reply> replies;
private Flag[] flags;
private Predicate<Update>[] flags;
private AbilityBuilder() {
replies = newArrayList();
@ -170,7 +170,7 @@ public final class Ability {
return this;
}
public AbilityBuilder flag(Flag... flags) {
public AbilityBuilder flag(Predicate<Update>... flags) {
this.flags = flags;
return this;
}

View File

@ -410,13 +410,9 @@ public class AbilityBotTest {
}
@Test
public void canCheckGlobalFlags() {
public void defaultGlobalFlagIsTrue() {
Update update = mock(Update.class);
Message message = mock(Message.class);
when(update.hasMessage()).thenReturn(true);
when(update.getMessage()).thenReturn(message);
assertEquals("Unexpected result when checking for locality", true, bot.checkGlobalFlags(update));
assertEquals("Unexpected result when checking for the default global flags", true, bot.checkGlobalFlags(update));
}
@Test(expected = ArithmeticException.class)