@Override public SequenceValidator<String> createSequenceValidator() { return new BilouNameFinderSequenceValidator(); }
/** * Last, Any Continue => Invalid */ @Test public void testLastFollowedByContinue() { String[] outcomesSequence = new String[] {START_A, CONTINUE_A, LAST_A}; String outcome = CONTINUE_A; String[] inputSequence = new String[] {"TypeA", "TypeA", "TypeA", "TypeA", "something"}; Assert.assertFalse(validator.validSequence(3, inputSequence, outcomesSequence, outcome)); // Diff. Types outcome = CONTINUE_B; inputSequence = new String[] {"TypeA", "TypeA", "TypeA", "TypeB", "something"}; Assert.assertFalse(validator.validSequence(3, inputSequence, outcomesSequence, outcome)); }
/** * Last, Any Start => Valid */ @Test public void testLastFollowedByStart() { String[] outcomesSequence = new String[] {START_A, CONTINUE_A, LAST_A}; // Same Types String outcome = START_A; String[] inputSequence = new String[] {"TypeA", "TypeA", "TypeA", "TypeA", "TypeA"}; Assert.assertTrue(validator.validSequence(3, inputSequence, outcomesSequence, outcome)); // Same Types outcome = START_B; inputSequence = new String[] {"TypeA", "TypeA", "TypeA", "TypeB", "TypeB"}; Assert.assertTrue(validator.validSequence(3, inputSequence, outcomesSequence, outcome)); }
/** * Continue, Any Begin => Invalid */ @Test public void testContinueFollowedByStart() { String[] outcomesSequence = new String[] {START_A, CONTINUE_A}; // Same Types String outcome = START_A; String[] inputSequence = new String[] {"TypeA", "TypeA", "TypeA", "something"}; Assert.assertFalse(validator.validSequence(2, inputSequence, outcomesSequence, outcome)); // Diff. Types outcome = START_B; inputSequence = new String[] {"TypeA", "TypeA", "TypeB", "something"}; Assert.assertFalse(validator.validSequence(2, inputSequence, outcomesSequence, outcome)); }
@Override public SequenceValidator<String> createSequenceValidator() { return new BilouNameFinderSequenceValidator(); }
/** * Start, Any Start => Invalid */ @Test public void testBeginFollowedByBegin() { String[] outcomesSequence = new String[] {START_A}; // Same Types String outcome = START_A; String[] inputSequence = new String[] {"TypeA", "TypeA", "something"}; Assert.assertFalse(validator.validSequence(1, inputSequence, outcomesSequence, outcome)); // Diff. Types outcome = START_B; inputSequence = new String[] {"TypeA", "TypeB", "something"}; Assert.assertFalse(validator.validSequence(1, inputSequence, outcomesSequence, outcome)); }
@Override public SequenceValidator<String> createSequenceValidator() { return new BilouNameFinderSequenceValidator(); }
/** * Start, Continue, Same type => Valid * Start, Continue, Diff. Type => Invalid */ @Test public void testBeginFollowedByContinue() { String[] outcomesSequence = new String[] {START_A}; // Same Types String outcome = CONTINUE_A; String[] inputSequence = new String[] {"TypeA", "TypeA", "TypeA", "something"}; Assert.assertTrue(validator.validSequence(1, inputSequence, outcomesSequence, outcome)); // Different Types outcome = CONTINUE_B; inputSequence = new String[] {"TypeA", "TypeB", "TypeB", "something"}; Assert.assertFalse(validator.validSequence(1, inputSequence, outcomesSequence, outcome)); }
/** * Continue, Continue, Same type => Valid * Continue, Continue, Diff. Type => Invalid */ @Test public void testContinueFollowedByContinue() { String[] outcomesSequence = new String[] {START_A, CONTINUE_A, CONTINUE_A}; // Same Types String outcome = CONTINUE_A; String[] inputSequence = new String[] {"TypeA", "TypeA", "TypeA", "TypeA", "something"}; Assert.assertTrue(validator.validSequence(3, inputSequence, outcomesSequence, outcome)); // Different Types outcome = CONTINUE_B; inputSequence = new String[] {"TypeA", "TypeA", "TypeA", "TypeB", "something"}; Assert.assertFalse(validator.validSequence(3, inputSequence, outcomesSequence, outcome)); }
/** * Start, Last, Same Type => Valid * Start, Last, Diff. Type => Invalid */ @Test public void testStartFollowedByLast() { String[] outcomesSequence = new String[] {START_A}; // Same Type String outcome = LAST_A; String[] inputSequence = new String[] {"TypeA", "TypeA", "something"}; Assert.assertTrue(validator.validSequence(1, inputSequence, outcomesSequence, outcome)); // Diff. Types outcome = LAST_B; inputSequence = new String[] {"TypeA", "TypeB", "something"}; Assert.assertFalse(validator.validSequence(1, inputSequence, outcomesSequence, outcome)); }
/** * Continue, Last, Same Type => Valid * Continue, Last, Diff. Type => Invalid */ @Test public void testContinueFollowedByLast() { String[] outcomesSequence = new String[] {OTHER, START_A, CONTINUE_A}; // Same Types String outcome = LAST_A; String[] inputSequence = new String[] {"something", "TypeA", "TypeA", "TypeA", "something"}; Assert.assertTrue(validator.validSequence(3, inputSequence, outcomesSequence, outcome)); // Different Types outcome = LAST_B; inputSequence = new String[] {"something", "TypeA", "TypeA", "TypeB", "something"}; Assert.assertFalse(validator.validSequence(3, inputSequence, outcomesSequence, outcome)); }
@Test public void testLastAsFirstLabel() { String outcome = LAST_A; String[] inputSequence = new String[] {"TypeA", "something", "something"}; String[] outcomesSequence = new String[] { }; Assert.assertFalse(validator.validSequence(0, inputSequence, outcomesSequence, outcome)); }
/** * Unit, Other => Valid */ @Test public void testUnitFollowedByOutside() { String outcome = OTHER; String[] inputSequence = new String[] {"TypeA", "something", "something"}; String[] outcomesSequence = new String[] {UNIT_A}; Assert.assertTrue(validator.validSequence(1, inputSequence, outcomesSequence, outcome)); }
/** * Last, Any Last => Invalid */ @Test public void testLastFollowedByLast() { String[] outcomesSequence = new String[] {OTHER, OTHER, START_A, CONTINUE_A, LAST_A}; // Same Types String outcome = LAST_A; String[] inputSequence = new String[] {"something", "something", "TypeA", "TypeA", "TypeA", "TypeA", "something"}; Assert.assertFalse(validator.validSequence(5, inputSequence, outcomesSequence, outcome)); // Diff. Types outcome = LAST_B; inputSequence = new String[] {"something", "something", "TypeA", "TypeA", "TypeA", "TypeB", "something"}; Assert.assertFalse(validator.validSequence(5, inputSequence, outcomesSequence, outcome)); }
/** * Continue, Unit => Invalid */ @Test public void testContinueFollowedByUnit() { String outcome = UNIT_A; String[] inputSequence = new String[] {"TypeA", "TypeA", "AnyType", "something"}; String[] outcomesSequence = new String[] {START_A, CONTINUE_A}; Assert.assertFalse(validator.validSequence(2, inputSequence, outcomesSequence, outcome)); }
/** * Other, Any Continue => Invalid */ @Test public void testOtherFollowedByContinue() { String outcome = CONTINUE_A; String[] inputSequence = new String[] {"something", "TypeA", "TypeA"}; String[] outcomesSequence = new String[] {OTHER}; Assert.assertFalse(validator.validSequence(1, inputSequence, outcomesSequence, outcome)); }
/** * Unit, Any Last => Invalid */ @Test public void testUnitFollowedByLast() { String outcome = LAST_A; String[] inputSequence = new String[] {"AnyType", "TypeA", "something"}; String[] outcomesSequence = new String[] {UNIT_A}; Assert.assertFalse(validator.validSequence(1, inputSequence, outcomesSequence, outcome)); }
/** * Unit, Unit => Valid */ @Test public void testUnitFollowedByUnit() { String outcome = UNIT_A; String[] inputSequence = new String[] {"AnyType", "AnyType", "something"}; String[] outcomesSequence = new String[] {UNIT_A}; Assert.assertTrue(validator.validSequence(1, inputSequence, outcomesSequence, outcome)); }
@Test public void testStartAsFirstLabel() { String outcome = START_A; String[] inputSequence = new String[] {"TypeA", "TypeA", "something"}; String[] outcomesSequence = new String[] { }; Assert.assertTrue(validator.validSequence(0, inputSequence, outcomesSequence, outcome)); }
@Test public void testContinueAsFirstLabel() { String outcome = CONTINUE_A; String[] inputSequence = new String[] {"TypeA", "something", "something"}; String[] outcomesSequence = new String[] { }; Assert.assertFalse(validator.validSequence(0, inputSequence, outcomesSequence, outcome)); }