You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

WeakListTest.java 9.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. /*
  2. * Copyright (c) 2006-2013 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.Iterator;
  25. import java.util.List;
  26. import java.util.ListIterator;
  27. import org.junit.Test;
  28. import static org.junit.Assert.*;
  29. public class WeakListTest {
  30. @Test
  31. public void testIsEmpty() {
  32. final WeakList<String> instance = new WeakList<String>();
  33. assertTrue(instance.isEmpty());
  34. instance.add("test1");
  35. assertFalse(instance.isEmpty());
  36. }
  37. @Test
  38. public void testAdd() {
  39. final WeakList<String> instance = new WeakList<String>();
  40. assertTrue(instance.add("test1"));
  41. assertFalse(instance.isEmpty());
  42. }
  43. @Test
  44. public void testAdd_Int() {
  45. final WeakList<String> instance = new WeakList<String>();
  46. assertTrue(instance.add("test1"));
  47. instance.add(0, "test2");
  48. assertEquals("test2", instance.get(0));
  49. }
  50. @Test
  51. public void testRemove() {
  52. final WeakList<String> instance = new WeakList<String>();
  53. instance.add("test1");
  54. assertFalse(instance.isEmpty());
  55. assertTrue(instance.remove("test1"));
  56. assertFalse(instance.remove("test1"));
  57. }
  58. @Test
  59. public void testRemove_Int() {
  60. final WeakList<String> instance = new WeakList<String>();
  61. assertTrue(instance.isEmpty());
  62. instance.add("test1");
  63. instance.add("test2");
  64. assertEquals(2, instance.size());
  65. instance.remove(1);
  66. assertTrue(instance.contains(("test1")));
  67. assertFalse(instance.contains(("test2")));
  68. }
  69. @Test
  70. public void testGet() {
  71. final WeakList<String> instance = new WeakList<String>();
  72. instance.add("test1");
  73. instance.add("test2");
  74. assertEquals("test1", instance.get(0));
  75. assertEquals("test2", instance.get(1));
  76. }
  77. @Test
  78. public void testContains() {
  79. final WeakList<String> instance = new WeakList<String>();
  80. assertFalse(instance.contains("test1"));
  81. instance.add("test1");
  82. assertTrue(instance.contains("test1"));
  83. }
  84. /**
  85. * Test of toArray method, of class WeakList.
  86. */
  87. @Test
  88. public void testToArray_0args() {
  89. final WeakList<String> instance = new WeakList<String>();
  90. assertEquals(0, instance.toArray().length);
  91. instance.add("test1");
  92. instance.add("test2");
  93. final Object[] result = instance.toArray();
  94. assertEquals(2, result.length);
  95. assertEquals("test1", result[0]);
  96. assertEquals("test2", result[1]);
  97. }
  98. /**
  99. * Test of toArray method, of class WeakList.
  100. */
  101. @Test
  102. public void testToArray_GenericType() {
  103. final WeakList<String> instance = new WeakList<String>();
  104. assertEquals(0, instance.toArray(new String[0]).length);
  105. instance.add("test1");
  106. instance.add("test2");
  107. final Object[] result = instance.toArray(new String[2]);
  108. assertEquals(2, result.length);
  109. assertEquals("test1", result[0]);
  110. assertEquals("test2", result[1]);
  111. }
  112. /**
  113. * Test of containsAll method, of class WeakList.
  114. */
  115. @Test
  116. public void testContainsAllAddAll() {
  117. final List<String> list = new ArrayList<String>();
  118. list.add("test1");
  119. list.add("test2");
  120. final WeakList<String> instance = new WeakList<String>();
  121. assertFalse(instance.containsAll(list));
  122. instance.addAll(list);
  123. assertTrue(instance.contains("test1"));
  124. assertTrue(instance.contains("test2"));
  125. assertTrue(instance.containsAll(list));
  126. }
  127. @Test
  128. public void testAddAll_int_Collection() {
  129. final List<String> list = new ArrayList<String>();
  130. list.add("test1");
  131. list.add("test2");
  132. final WeakList<String> instance = new WeakList<String>();
  133. instance.add("test3");
  134. System.out.println(instance);
  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 String two = "test2";
  145. final WeakList<String> instance = new WeakList<String>();
  146. instance.add(one);
  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 String two = "test2";
  156. final WeakList<String> instance = new WeakList<String>();
  157. instance.add(one);
  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 List<String> list = new ArrayList<String>();
  166. list.add("test1");
  167. list.add("test2");
  168. final WeakList<String> instance = new WeakList<String>();
  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 List<String> list = new ArrayList<String>();
  177. list.add("test1");
  178. list.add("test2");
  179. final WeakList<String> instance = new WeakList<String>();
  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 List<String> list = new ArrayList<String>();
  190. list.add("test1");
  191. list.add("test2");
  192. final WeakList<String> instance = new WeakList<String>();
  193. instance.addAll(list);
  194. assertFalse(instance.isEmpty());
  195. instance.clear();
  196. assertTrue(instance.isEmpty());
  197. }
  198. @Test
  199. public void testSet() {
  200. final WeakList<String> instance = new WeakList<String>();
  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 WeakList<String> instance = new WeakList<String>();
  209. Iterator 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 testListIterator_0args() {
  220. final WeakList<String> instance = new WeakList<String>();
  221. ListIterator 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 testListIterator_int() {
  232. final WeakList<String> instance = new WeakList<String>();
  233. ListIterator 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 WeakList<String> instance = new WeakList<String>();
  247. instance.add("test1");
  248. instance.add("test2");
  249. instance.add("test3");
  250. instance.add("test4");
  251. List result = instance.subList(1, 3);
  252. assertEquals(2, result.size());
  253. assertTrue(result.contains("test2"));
  254. assertTrue(result.contains("test3"));
  255. }
  256. }