1 32 package net.sf.retrotranslator.runtime.java.util; 33 34 import java.util.*; 35 import junit.framework.TestCase; 36 37 40 public class EnumSet_TestCase extends TestCase { 41 42 private static enum Day { 43 SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIEDAY, SATURDAY 44 } 45 46 public void testAllOf() { 47 EnumSet<Day> days = EnumSet.allOf(Day.class); 48 assertEquals(7, days.size()); 49 assertContent(days, Day.values()); 50 } 51 52 public void testComplementOf() { 53 EnumSet<Day> days = EnumSet.complementOf( 54 EnumSet.of(Day.SUNDAY, Day.TUESDAY, Day.THURSDAY, Day.SATURDAY)); 55 assertContent(days, Day.MONDAY, Day.WEDNESDAY, Day.FRIEDAY); 56 } 57 58 public void testCopyOf() { 59 EnumSet<Day> enumSetCopy = EnumSet.copyOf( 60 EnumSet.of(Day.SUNDAY, Day.SATURDAY)); 61 assertContent(enumSetCopy, Day.SUNDAY, Day.SATURDAY); 62 63 EnumSet<Day> collectionCopy = EnumSet.copyOf( 64 (Collection<Day>) EnumSet.of(Day.SUNDAY, Day.SATURDAY)); 65 assertContent(collectionCopy, Day.SUNDAY, Day.SATURDAY); 66 67 EnumSet<Day> listCopy = EnumSet.copyOf( 68 Arrays.asList(Day.SATURDAY, Day.SUNDAY) 69 ); 70 assertContent(listCopy, Day.SUNDAY, Day.SATURDAY); 71 72 try { 73 EnumSet.copyOf(Collections.<Day>emptyList()); 74 fail(); 75 } catch (IllegalArgumentException e) { 76 } 78 } 79 80 public void testNoneOf() { 81 EnumSet<Day> days = EnumSet.noneOf(Day.class); 82 assertTrue(days.isEmpty()); 83 } 84 85 public void testOf() { 86 assertContent(EnumSet.of(Day.FRIEDAY), 87 Day.FRIEDAY); 88 assertContent(EnumSet.of(Day.SUNDAY, Day.MONDAY), 89 Day.SUNDAY, Day.MONDAY); 90 assertContent(EnumSet.of(Day.SUNDAY, Day.MONDAY, Day.TUESDAY), 91 Day.SUNDAY, Day.MONDAY, Day.TUESDAY); 92 assertContent(EnumSet.of(Day.SUNDAY, Day.MONDAY, Day.TUESDAY, Day.WEDNESDAY), 93 Day.SUNDAY, Day.MONDAY, Day.TUESDAY, Day.WEDNESDAY); 94 assertContent(EnumSet.of(Day.SUNDAY, Day.MONDAY, Day.TUESDAY, Day.WEDNESDAY, Day.THURSDAY), 95 Day.SUNDAY, Day.MONDAY, Day.TUESDAY, Day.WEDNESDAY, Day.THURSDAY); 96 assertContent(EnumSet.of(Day.SUNDAY, Day.MONDAY, Day.TUESDAY, Day.WEDNESDAY, Day.THURSDAY, Day.FRIEDAY), 97 Day.SUNDAY, Day.MONDAY, Day.TUESDAY, Day.WEDNESDAY, Day.THURSDAY, Day.FRIEDAY); 98 } 99 100 public void testRange() throws Exception { 101 assertContent(EnumSet.range(Day.TUESDAY, Day.THURSDAY), Day.TUESDAY, Day.WEDNESDAY, Day.THURSDAY); 102 try { 103 EnumSet.range(Day.WEDNESDAY, Day.SUNDAY); 104 } catch (IllegalArgumentException e) { 105 } 107 } 108 109 public void testAdd() { 110 EnumSet<Day> days = EnumSet.of(Day.SUNDAY); 111 try { 112 days.add(null); 113 fail(); 114 } catch (NullPointerException e) { 115 } 117 } 118 119 public void testIterator() { 120 EnumSet<Day> days = EnumSet.of( 121 Day.FRIEDAY, Day.WEDNESDAY, Day.SUNDAY, Day.SATURDAY, Day.TUESDAY); 122 Iterator<Day> iterator = days.iterator(); 123 days.add(Day.THURSDAY); 124 assertEquals(Day.SUNDAY, iterator.next()); 125 days.add(Day.MONDAY); 126 assertEquals(Day.TUESDAY, iterator.next()); 127 assertEquals(Day.WEDNESDAY, iterator.next()); 128 assertEquals(Day.FRIEDAY, iterator.next()); 129 assertEquals(Day.SATURDAY, iterator.next()); 130 assertFalse(iterator.hasNext()); 131 } 132 133 public void testClone() throws Exception { 134 EnumSet<Day> days = EnumSet.of(Day.SUNDAY); 135 EnumSet<Day> clone = days.clone(); 136 assertContent(clone, Day.SUNDAY); 137 } 138 139 private void assertContent(EnumSet<Day> set, Day... days) { 140 assertEquals(days.length, set.size()); 141 List<Day> list = Arrays.asList(days); 142 for (Day day : Day.values()) { 143 if (list.contains(day)) { 144 assertTrue(set.contains(day)); 145 } else { 146 assertFalse(set.contains(day)); 147 } 148 } 149 } 150 } 151 | Popular Tags |