@Before public void init() { mask = new MaskImpl(new Slot[]{ PredefinedSlots.any(), PredefinedSlots.hardcodedSlot('-'), PredefinedSlots.any(), PredefinedSlots.any() }, true); }
@NonNull protected Slot slotFromUnderscoreCharacter() { return PredefinedSlots.digit(); }
@Test public void equals() throws Exception { assertNotEquals(list, null); assertNotEquals(list, new SlotsList()); assertEquals(list, new SlotsList(list)); SlotsList list2 = SlotsList.ofArray(new Slot[]{ PredefinedSlots.any(), PredefinedSlots.digit(), PredefinedSlots.hardcodedSlot('1'), PredefinedSlots.hardcodedSlot('1'), PredefinedSlots.hardcodedSlot('2'), }); assertEquals(list, list2); assertEquals(list2, list); }
@Test public void clear() throws Exception { SlotsList list2 = SlotsList.ofArray(new Slot[]{ PredefinedSlots.any(), PredefinedSlots.any(), PredefinedSlots.any(), PredefinedSlots.digit(), }); for (Slot slot : list2) { slot.setValue('0'); assertNotNull(slot.getValue()); } list2.clear(); for (Slot slot : list2) { assertNull(slot.getValue()); } }
@NonNull private MaskImpl createEmptyMask() { return MaskImpl.createNonTerminated(new Slot[]{PredefinedSlots.any()}); }
@NonNull protected Slot slotFromNonUnderscoredChar(char character) { return PredefinedSlots.hardcodedSlot(character); } }
@NonNull public static MaskDescriptor emptyMask() { return new MaskDescriptor() .setSlots(new Slot[]{PredefinedSlots.any()}) .setTerminated(false); }
@Before public void setUp() throws Exception { bareSlots = new Slot[]{ first, second, PredefinedSlots.hardcodedSlot('1'), PredefinedSlots.hardcodedSlot('1'), last }; list = SlotsList.ofArray(bareSlots); }
@Test public void toStringWithoutParams() { mask = new MaskImpl(new Slot[]{ PredefinedSlots.hardcodedSlot('+'), PredefinedSlots.any(), PredefinedSlots.hardcodedSlot('-'), PredefinedSlots.any(), PredefinedSlots.any() }, true); assertEquals("+", mask.toString()); mask.setHideHardcodedHead(true); assertEquals("", mask.toString()); mask.setShowingEmptySlots(true); assertEquals("+_-__", mask.toString()); mask.insertFront("123"); assertEquals("+1-23", mask.toString()); }
@Test(expected = IndexOutOfBoundsException.class) public void insertSlotAt_failsTooBig() throws Exception { list.insertSlotAt(10, PredefinedSlots.any()); }
@Override protected Slot slotFromNonUnderscoredChar(char character) { if (!Character.isDigit(character)) { rule = Slot.RULE_INPUT_MOVES_INPUT | Slot.RULE_INPUT_REPLACE; final Slot hardcoded = PredefinedSlots.hardcodedSlot(character); return character == PLUS_SIGN ? hardcoded : hardcoded.withTags(Slot.TAG_DECORATION); } final Slot slot = new Slot(rule, character, SlotValidatorSet.setOf(new SlotValidators.DigitValidator())); rule = Slot.RULE_INPUT_MOVES_INPUT; return slot; } }
@Test public void toUnformattedString() { mask = new MaskImpl(new Slot[]{ PredefinedSlots.hardcodedSlot('+'), PredefinedSlots.any(), PredefinedSlots.hardcodedSlot('-').withTags(Slot.TAG_DECORATION), PredefinedSlots.any(), PredefinedSlots.any() }, true); assertEquals("+", mask.toUnformattedString()); mask.setHideHardcodedHead(true); assertEquals("", mask.toUnformattedString()); mask.setShowingEmptySlots(true); assertEquals("+___", mask.toUnformattedString()); mask.insertFront("123"); assertEquals("+123", mask.toUnformattedString()); }
@Test(expected = IndexOutOfBoundsException.class) public void insertSlotAt_failsTooSmall() throws Exception { list.insertSlotAt(-1, PredefinedSlots.any()); }
@Test public void insertSlotAt() throws Exception { assertEquals(PredefinedSlots.hardcodedSlot('0'), list.insertSlotAt(0, PredefinedSlots.hardcodedSlot('0'))); assertEquals(6, list.size()); assertEquals(list.getFirstSlot(), PredefinedSlots.hardcodedSlot('0')); list.insertSlotAt(6, PredefinedSlots.hardcodedSlot('5')); assertEquals(7, list.size()); assertEquals(list.getLastSlot(), PredefinedSlots.hardcodedSlot('5')); list.insertSlotAt(1, PredefinedSlots.hardcodedSlot('1')); assertEquals(8, list.size()); assertEquals(list.getFirstSlot().getNextSlot(), PredefinedSlots.hardcodedSlot('1')); list.insertSlotAt(7, PredefinedSlots.hardcodedSlot('6')); assertEquals(9, list.size()); assertEquals(list.getLastSlot().getPrevSlot(), PredefinedSlots.hardcodedSlot('6')); }
@Test public void parcelable() { MaskDescriptor before = new MaskDescriptor() .setForbidInputWhenFilled(true) .setHideHardcodedHead(true) .setRawMask("___-___") .setSlots(new Slot[]{PredefinedSlots.digit()}) .setTerminated(false); Parcel parcel = Parcel.obtain(); before.writeToParcel(parcel, 0); parcel.setDataPosition(0); MaskDescriptor after = MaskDescriptor.CREATOR.createFromParcel(parcel); Assert.assertEquals(before, after); parcel.recycle(); }
@Test(expected = NullPointerException.class) public void add() throws Exception { list.add(PredefinedSlots.hardcodedSlot('9')); assertEquals(6, list.size()); assertEquals(list.getLastSlot(), PredefinedSlots.hardcodedSlot('9')); list.add(null); }