package org.bukkit.conversations; import org.junit.Test; import static org.junit.Assert.*; /** */ public class ValidatingPromptTest { @Test public void TestBooleanPrompt() { TestBooleanPrompt prompt = new TestBooleanPrompt(); assertTrue(prompt.isInputValid(null, "true")); assertFalse(prompt.isInputValid(null, "bananas")); prompt.acceptInput(null, "true"); assertTrue(prompt.result); prompt.acceptInput(null, "no"); assertFalse(prompt.result); } @Test public void TestFixedSetPrompt() { TestFixedSetPrompt prompt = new TestFixedSetPrompt("foo", "bar"); assertTrue(prompt.isInputValid(null, "foo")); assertFalse(prompt.isInputValid(null, "cheese")); prompt.acceptInput(null, "foo"); assertEquals("foo", prompt.result); } @Test public void TestNumericPrompt() { TestNumericPrompt prompt = new TestNumericPrompt(); assertTrue(prompt.isInputValid(null, "1010220")); assertFalse(prompt.isInputValid(null, "tomato")); prompt.acceptInput(null, "1010220"); assertEquals(1010220, prompt.result); } @Test public void TestRegexPrompt() { TestRegexPrompt prompt = new TestRegexPrompt("a.c"); assertTrue(prompt.isInputValid(null, "abc")); assertTrue(prompt.isInputValid(null, "axc")); assertFalse(prompt.isInputValid(null, "xyz")); prompt.acceptInput(null, "abc"); assertEquals("abc", prompt.result); } //TODO: TestPlayerNamePrompt() private class TestBooleanPrompt extends BooleanPrompt { public boolean result; @Override protected Prompt acceptValidatedInput(ConversationContext context, boolean input) { result = input; return null; } public String getPromptText(ConversationContext context) { return null; } } private class TestFixedSetPrompt extends FixedSetPrompt { public String result; public TestFixedSetPrompt(String... fixedSet) { super(fixedSet); } @Override protected Prompt acceptValidatedInput(ConversationContext context, String input) { result = input; return null; } public String getPromptText(ConversationContext context) { return null; } } private class TestNumericPrompt extends NumericPrompt { public Number result; @Override protected Prompt acceptValidatedInput(ConversationContext context, Number input) { result = input; return null; } public String getPromptText(ConversationContext context) { return null; } } private class TestRegexPrompt extends RegexPrompt { public String result; public TestRegexPrompt(String pattern) { super(pattern); } @Override protected Prompt acceptValidatedInput(ConversationContext context, String input) { result = input; return null; } public String getPromptText(ConversationContext context) { return null; } } }