1   package com.atlassian.webtest.ui.keys;
2   
3   import org.junit.Ignore;
4   import org.junit.Test;
5   
6   import static org.junit.Assert.assertEquals;
7   import static org.junit.Assert.assertTrue;
8   
9   /**
10   * Tests for {@link KeySequenceBuilder} and {@link Sequences} classes.
11   *
12   * @since v1.21
13   */
14  public class TestKeySequenceBuilder
15  {
16  
17      @Test
18      public void shouldBuildDefaultCharacterSequence()
19      {
20          KeySequence result = Sequences.chars("something");
21          assertTrue(result instanceof CharacterKeySequence);
22          CharacterKeySequence charSeq = (CharacterKeySequence) result;
23          assertEquals("something", charSeq.string());
24          assertSequenceEquals(charSeq, "something");
25      }
26  
27      @Ignore("nice to have")
28      @Test
29      public void shouldDetectCharacterKeysAddedAsKeys()
30      {
31          KeySequence result = new KeySequenceBuilder("hahaha").append(new DefaultCharacterKey("h")).build();
32          assertTrue(result instanceof CharacterKeySequence);
33          CharacterKeySequence charResult = (CharacterKeySequence) result;
34          assertEquals("hahahah", charResult.string());
35      }
36  
37      private void assertSequenceEquals(KeySequence sequence, String chars)
38      {
39  
40          for (int i=0; i<sequence.keys().size(); i++)
41          {
42              Key key = sequence.keys().get(i);
43              assertTrue(key instanceof CharacterKey);
44              CharacterKey charKey = (CharacterKey) key;
45              assertEquals(chars.charAt(i), charKey.codeUnit());
46          }
47      }
48  
49  }