您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

WeakListTest.java 9.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. /*
  2. * Copyright (c) 2006-2015 DMDirc Developers
  3. *
  4. * Permission is hereby granted, free of charge, to any person obtaining a copy
  5. * of this software and associated documentation files (the "Software"), to deal
  6. * in the Software without restriction, including without limitation the rights
  7. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  8. * copies of the Software, and to permit persons to whom the Software is
  9. * furnished to do so, subject to the following conditions:
  10. *
  11. * The above copyright notice and this permission notice shall be included in
  12. * all copies or substantial portions of the Software.
  13. *
  14. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17. * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  19. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  20. * SOFTWARE.
  21. */
  22. package com.dmdirc.util.collections;
  23. import java.util.ArrayList;
  24. import java.util.Collection;
  25. import java.util.Iterator;
  26. import java.util.List;
  27. import java.util.ListIterator;
  28. import org.junit.Test;
  29. import static org.junit.Assert.*;
  30. public class WeakListTest {
  31. @Test
  32. public void testIsEmpty() {
  33. final List<String> instance = new WeakList<>();
  34. assertTrue(instance.isEmpty());
  35. instance.add("test1");
  36. assertFalse(instance.isEmpty());
  37. }
  38. @Test
  39. public void testAdd() {
  40. final List<String> instance = new WeakList<>();
  41. assertTrue(instance.add("test1"));
  42. assertFalse(instance.isEmpty());
  43. }
  44. @Test
  45. public void testAddInt() {
  46. final List<String> instance = new WeakList<>();
  47. assertTrue(instance.add("test1"));
  48. instance.add(0, "test2");
  49. assertEquals("test2", instance.get(0));
  50. }
  51. @Test
  52. public void testRemove() {
  53. final List<String> instance = new WeakList<>();
  54. instance.add("test1");
  55. assertFalse(instance.isEmpty());
  56. assertTrue(instance.remove("test1"));
  57. assertFalse(instance.remove("test1"));
  58. }
  59. @Test
  60. public void testRemoveInt() {
  61. final List<String> instance = new WeakList<>();
  62. assertTrue(instance.isEmpty());
  63. instance.add("test1");
  64. instance.add("test2");
  65. assertEquals(2, instance.size());
  66. instance.remove(1);
  67. assertTrue(instance.contains("test1"));
  68. assertFalse(instance.contains("test2"));
  69. }
  70. @Test
  71. public void testGet() {
  72. final List<String> instance = new WeakList<>();
  73. instance.add("test1");
  74. instance.add("test2");
  75. assertEquals("test1", instance.get(0));
  76. assertEquals("test2", instance.get(1));
  77. }
  78. @Test
  79. public void testContains() {
  80. final List<String> instance = new WeakList<>();
  81. assertFalse(instance.contains("test1"));
  82. instance.add("test1");
  83. assertTrue(instance.contains("test1"));
  84. }
  85. /**
  86. * Test of toArray method, of class WeakList.
  87. */
  88. @Test
  89. public void testToArray0args() {
  90. final List<String> instance = new WeakList<>();
  91. assertEquals(0, instance.toArray().length);
  92. instance.add("test1");
  93. instance.add("test2");
  94. final Object[] result = instance.toArray();
  95. assertEquals(2, result.length);
  96. assertEquals("test1", result[0]);
  97. assertEquals("test2", result[1]);
  98. }
  99. /**
  100. * Test of toArray method, of class WeakList.
  101. */
  102. @Test
  103. public void testToArrayGenericType() {
  104. final List<String> instance = new WeakList<>();
  105. assertEquals(0, instance.toArray(new String[instance.size()]).length);
  106. instance.add("test1");
  107. instance.add("test2");
  108. final Object[] result = instance.toArray(new String[2]);
  109. assertEquals(2, result.length);
  110. assertEquals("test1", result[0]);
  111. assertEquals("test2", result[1]);
  112. }
  113. /**
  114. * Test of containsAll method, of class WeakList.
  115. */
  116. @Test
  117. public void testContainsAllAddAll() {
  118. final Collection<String> list = new ArrayList<>();
  119. list.add("test1");
  120. list.add("test2");
  121. final List<String> instance = new WeakList<>();
  122. assertFalse(instance.containsAll(list));
  123. instance.addAll(list);
  124. assertTrue(instance.contains("test1"));
  125. assertTrue(instance.contains("test2"));
  126. assertTrue(instance.containsAll(list));
  127. }
  128. @Test
  129. public void testAddAllIntCollection() {
  130. final Collection<String> list = new ArrayList<>();
  131. list.add("test1");
  132. list.add("test2");
  133. final List<String> instance = new WeakList<>();
  134. instance.add("test3");
  135. assertEquals("test3", instance.get(0));
  136. assertFalse(instance.containsAll(list));
  137. instance.addAll(0, list);
  138. assertEquals("test1", instance.get(0));
  139. assertEquals("test2", instance.get(1));
  140. }
  141. @Test
  142. public void testIndexOf() {
  143. final String one = "test1";
  144. final List<String> instance = new WeakList<>();
  145. instance.add(one);
  146. final String two = "test2";
  147. instance.add(two);
  148. assertEquals(2, instance.size());
  149. assertEquals(0, instance.indexOf(one));
  150. assertEquals(1, instance.indexOf(two));
  151. }
  152. @Test
  153. public void testLastIndexOf() {
  154. final String one = "test1";
  155. final List<String> instance = new WeakList<>();
  156. instance.add(one);
  157. final String two = "test2";
  158. instance.add(two);
  159. instance.add(one);
  160. assertEquals(3, instance.size());
  161. assertEquals(2, instance.lastIndexOf(one));
  162. }
  163. @Test
  164. public void testRemoveAll() {
  165. final Collection<String> list = new ArrayList<>();
  166. list.add("test1");
  167. list.add("test2");
  168. final List<String> instance = new WeakList<>();
  169. instance.addAll(list);
  170. assertFalse(instance.isEmpty());
  171. instance.removeAll(list);
  172. assertTrue(instance.isEmpty());
  173. }
  174. @Test
  175. public void testRetainAll() {
  176. final Collection<String> list = new ArrayList<>();
  177. list.add("test1");
  178. list.add("test2");
  179. final List<String> instance = new WeakList<>();
  180. instance.addAll(list);
  181. instance.add("test3");
  182. instance.add("test4");
  183. assertFalse(list.size() == instance.size());
  184. instance.retainAll(list);
  185. assertTrue(list.size() == instance.size());
  186. }
  187. @Test
  188. public void testClear() {
  189. final Collection<String> list = new ArrayList<>();
  190. list.add("test1");
  191. list.add("test2");
  192. final List<String> instance = new WeakList<>();
  193. instance.addAll(list);
  194. assertFalse(instance.isEmpty());
  195. instance.clear();
  196. assertTrue(instance.isEmpty());
  197. }
  198. @Test
  199. public void testSet() {
  200. final List<String> instance = new WeakList<>();
  201. instance.add("test1");
  202. assertEquals("test1", instance.get(0));
  203. instance.set(0, "test2");
  204. assertEquals("test2", instance.get(0));
  205. }
  206. @Test
  207. public void testIterator() {
  208. final List<String> instance = new WeakList<>();
  209. Iterator<String> result = instance.iterator();
  210. assertFalse(result.hasNext());
  211. instance.add("test1");
  212. instance.add("test2");
  213. result = instance.iterator();
  214. assertEquals("test1", result.next());
  215. assertEquals("test2", result.next());
  216. assertFalse(result.hasNext());
  217. }
  218. @Test
  219. public void testListIterator0args() {
  220. final List<String> instance = new WeakList<>();
  221. Iterator<String> result = instance.listIterator();
  222. assertFalse(result.hasNext());
  223. instance.add("test1");
  224. instance.add("test2");
  225. result = instance.listIterator();
  226. assertEquals("test1", result.next());
  227. assertEquals("test2", result.next());
  228. assertFalse(result.hasNext());
  229. }
  230. @Test(expected=IndexOutOfBoundsException.class)
  231. public void testListIteratorInt() {
  232. final List<String> instance = new WeakList<>();
  233. ListIterator<String> result = instance.listIterator(1);
  234. assertFalse(result.hasNext());
  235. instance.add("test1");
  236. instance.add("test2");
  237. instance.add("text3");
  238. result = instance.listIterator(1);
  239. assertEquals("test1", result.previous());
  240. assertEquals("test2", result.next());
  241. assertEquals("test3", result.next());
  242. assertFalse(result.hasNext());
  243. }
  244. @Test
  245. public void testSubList() {
  246. final List<String> instance = new WeakList<>();
  247. instance.add("test1");
  248. instance.add("test2");
  249. instance.add("test3");
  250. instance.add("test4");
  251. final List<String> result = instance.subList(1, 3);
  252. assertEquals(2, result.size());
  253. assertTrue(result.contains("test2"));
  254. assertTrue(result.contains("test3"));
  255. }
  256. }