TaskSeriesCollectionTest.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653
  1. /* ===========================================================
  2. * JFreeChart : a free chart library for the Java(tm) platform
  3. * ===========================================================
  4. *
  5. * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors.
  6. *
  7. * Project Info: http://www.jfree.org/jfreechart/index.html
  8. *
  9. * This library is free software; you can redistribute it and/or modify it
  10. * under the terms of the GNU Lesser General Public License as published by
  11. * the Free Software Foundation; either version 2.1 of the License, or
  12. * (at your option) any later version.
  13. *
  14. * This library is distributed in the hope that it will be useful, but
  15. * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  16. * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
  17. * License for more details.
  18. *
  19. * You should have received a copy of the GNU Lesser General Public
  20. * License along with this library; if not, write to the Free Software
  21. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
  22. * USA.
  23. *
  24. * [Oracle and Java are registered trademarks of Oracle and/or its affiliates.
  25. * Other names may be trademarks of their respective owners.]
  26. *
  27. * -----------------------------
  28. * TaskSeriesCollectionTest.java
  29. * -----------------------------
  30. * (C) Copyright 2004-2013, by Object Refinery Limited.
  31. *
  32. * Original Author: David Gilbert (for Object Refinery Limited);
  33. * Contributor(s): -;
  34. *
  35. * Changes
  36. * -------
  37. * 30-Jul-2004 : Version 1 (DG);
  38. * 12-Jan-2005 : Added tests from TaskSeriesCollectionTests2.java (DG);
  39. * 08-Mar-2007 : Added testRemove() (DG);
  40. *
  41. */
  42. package org.jfree.data.gantt;
  43. import java.util.Date;
  44. import org.jfree.chart.TestUtilities;
  45. import org.jfree.data.time.SimpleTimePeriod;
  46. import org.junit.Test;
  47. import static org.junit.Assert.assertEquals;
  48. import static org.junit.Assert.assertFalse;
  49. import static org.junit.Assert.assertTrue;
  50. /**
  51. * Tests for the {@link TaskSeriesCollection} class.
  52. */
  53. public class TaskSeriesCollectionTest {
  54. /**
  55. * Creates a sample collection for testing purposes.
  56. *
  57. * @return A sample collection.
  58. */
  59. private TaskSeriesCollection createCollection1() {
  60. TaskSeriesCollection result = new TaskSeriesCollection();
  61. TaskSeries s1 = new TaskSeries("S1");
  62. s1.add(new Task("Task 1", new Date(1), new Date(2)));
  63. s1.add(new Task("Task 2", new Date(3), new Date(4)));
  64. result.add(s1);
  65. TaskSeries s2 = new TaskSeries("S2");
  66. s2.add(new Task("Task 3", new Date(5), new Date(6)));
  67. result.add(s2);
  68. return result;
  69. }
  70. /**
  71. * Creates a sample collection for testing purposes.
  72. *
  73. * @return A sample collection.
  74. */
  75. private TaskSeriesCollection createCollection2() {
  76. TaskSeriesCollection result = new TaskSeriesCollection();
  77. TaskSeries s1 = new TaskSeries("S1");
  78. Task t1 = new Task("Task 1", new Date(10), new Date(20));
  79. t1.addSubtask(new Task("Task 1A", new Date(10), new Date(15)));
  80. t1.addSubtask(new Task("Task 1B", new Date(16), new Date(20)));
  81. t1.setPercentComplete(0.10);
  82. s1.add(t1);
  83. Task t2 = new Task("Task 2", new Date(30), new Date(40));
  84. t2.addSubtask(new Task("Task 2A", new Date(30), new Date(35)));
  85. t2.addSubtask(new Task("Task 2B", new Date(36), new Date(40)));
  86. t2.setPercentComplete(0.20);
  87. s1.add(t2);
  88. result.add(s1);
  89. TaskSeries s2 = new TaskSeries("S2");
  90. Task t3 = new Task("Task 3", new Date(50), new Date(60));
  91. t3.addSubtask(new Task("Task 3A", new Date(50), new Date(55)));
  92. t3.addSubtask(new Task("Task 3B", new Date(56), new Date(60)));
  93. t3.setPercentComplete(0.30);
  94. s2.add(t3);
  95. result.add(s2);
  96. return result;
  97. }
  98. /**
  99. * Creates a sample collection for testing purposes.
  100. *
  101. * @return A sample collection.
  102. */
  103. private TaskSeriesCollection createCollection3() {
  104. // define subtasks
  105. Task sub1 = new Task("Sub1", new Date(11), new Date(111));
  106. Task sub2 = new Task("Sub2", new Date(22), new Date(222));
  107. Task sub3 = new Task("Sub3", new Date(33), new Date(333));
  108. Task sub4 = new Task("Sub4", new Date(44), new Date(444));
  109. Task sub5 = new Task("Sub5", new Date(55), new Date(555));
  110. Task sub6 = new Task("Sub6", new Date(66), new Date(666));
  111. sub1.setPercentComplete(0.111);
  112. sub2.setPercentComplete(0.222);
  113. sub3.setPercentComplete(0.333);
  114. sub4.setPercentComplete(0.444);
  115. sub5.setPercentComplete(0.555);
  116. sub6.setPercentComplete(0.666);
  117. TaskSeries seriesA = new TaskSeries("Series A");
  118. Task taskA1 = new Task("Task 1", new SimpleTimePeriod(new Date(100),
  119. new Date(200)));
  120. taskA1.setPercentComplete(0.1);
  121. taskA1.addSubtask(sub1);
  122. Task taskA2 = new Task("Task 2", new SimpleTimePeriod(new Date(220),
  123. new Date(350)));
  124. taskA2.setPercentComplete(0.2);
  125. taskA2.addSubtask(sub2);
  126. taskA2.addSubtask(sub3);
  127. seriesA.add(taskA1);
  128. seriesA.add(taskA2);
  129. TaskSeries seriesB = new TaskSeries("Series B");
  130. // note that we don't define taskB1
  131. Task taskB2 = new Task("Task 2", new SimpleTimePeriod(new Date(2220),
  132. new Date(3350)));
  133. taskB2.setPercentComplete(0.3);
  134. taskB2.addSubtask(sub4);
  135. taskB2.addSubtask(sub5);
  136. taskB2.addSubtask(sub6);
  137. seriesB.add(taskB2);
  138. TaskSeriesCollection tsc = new TaskSeriesCollection();
  139. tsc.add(seriesA);
  140. tsc.add(seriesB);
  141. return tsc;
  142. }
  143. /**
  144. * A test for the getSeriesCount() method.
  145. */
  146. @Test
  147. public void testGetSeriesCount() {
  148. TaskSeriesCollection c = createCollection1();
  149. assertEquals(2, c.getSeriesCount());
  150. }
  151. /**
  152. * Some tests for the getSeriesKey() method.
  153. */
  154. @Test
  155. public void testGetSeriesKey() {
  156. TaskSeriesCollection c = createCollection1();
  157. assertEquals("S1", c.getSeriesKey(0));
  158. assertEquals("S2", c.getSeriesKey(1));
  159. }
  160. /**
  161. * A test for the getRowCount() method.
  162. */
  163. @Test
  164. public void testGetRowCount() {
  165. TaskSeriesCollection c = createCollection1();
  166. assertEquals(2, c.getRowCount());
  167. }
  168. /**
  169. * Some tests for the getRowKey() method.
  170. */
  171. @Test
  172. public void testGetRowKey() {
  173. TaskSeriesCollection c = createCollection1();
  174. assertEquals("S1", c.getRowKey(0));
  175. assertEquals("S2", c.getRowKey(1));
  176. }
  177. /**
  178. * Some tests for the getRowIndex() method.
  179. */
  180. @Test
  181. public void testGetRowIndex() {
  182. TaskSeriesCollection c = createCollection1();
  183. assertEquals(0, c.getRowIndex("S1"));
  184. assertEquals(1, c.getRowIndex("S2"));
  185. }
  186. /**
  187. * Some tests for the getValue() method.
  188. */
  189. @Test
  190. public void testGetValue() {
  191. TaskSeriesCollection c = createCollection1();
  192. assertEquals(new Long(1L), c.getValue("S1", "Task 1"));
  193. assertEquals(new Long(3L), c.getValue("S1", "Task 2"));
  194. assertEquals(new Long(5L), c.getValue("S2", "Task 3"));
  195. assertEquals(new Long(1L), c.getValue(0, 0));
  196. assertEquals(new Long(3L), c.getValue(0, 1));
  197. assertEquals(null, c.getValue(0, 2));
  198. assertEquals(null, c.getValue(1, 0));
  199. assertEquals(null, c.getValue(1, 1));
  200. assertEquals(new Long(5L), c.getValue(1, 2));
  201. }
  202. /**
  203. * Some tests for the getStartValue() method.
  204. */
  205. @Test
  206. public void testGetStartValue() {
  207. TaskSeriesCollection c = createCollection1();
  208. assertEquals(new Long(1L), c.getStartValue("S1", "Task 1"));
  209. assertEquals(new Long(3L), c.getStartValue("S1", "Task 2"));
  210. assertEquals(new Long(5L), c.getStartValue("S2", "Task 3"));
  211. assertEquals(new Long(1L), c.getStartValue(0, 0));
  212. assertEquals(new Long(3L), c.getStartValue(0, 1));
  213. assertEquals(null, c.getStartValue(0, 2));
  214. assertEquals(null, c.getStartValue(1, 0));
  215. assertEquals(null, c.getStartValue(1, 1));
  216. assertEquals(new Long(5L), c.getStartValue(1, 2));
  217. // test collection 3, which doesn't define all tasks in all series
  218. TaskSeriesCollection c3 = createCollection3();
  219. assertEquals(new Long(100), c3.getStartValue(0, 0));
  220. assertEquals(new Long(220), c3.getStartValue(0, 1));
  221. assertTrue(c3.getStartValue(1, 0) == null);
  222. assertEquals(new Long(2220), c3.getStartValue(1, 1));
  223. }
  224. /**
  225. * Some tests for the getStartValue() method for sub-intervals.
  226. */
  227. @Test
  228. public void testGetStartValue2() {
  229. TaskSeriesCollection c = createCollection2();
  230. assertEquals(new Long(10L), c.getStartValue("S1", "Task 1", 0));
  231. assertEquals(new Long(16L), c.getStartValue("S1", "Task 1", 1));
  232. assertEquals(new Long(30L), c.getStartValue("S1", "Task 2", 0));
  233. assertEquals(new Long(36L), c.getStartValue("S1", "Task 2", 1));
  234. assertEquals(new Long(50L), c.getStartValue("S2", "Task 3", 0));
  235. assertEquals(new Long(56L), c.getStartValue("S2", "Task 3", 1));
  236. assertEquals(new Long(10L), c.getStartValue(0, 0, 0));
  237. assertEquals(new Long(16L), c.getStartValue(0, 0, 1));
  238. assertEquals(new Long(30L), c.getStartValue(0, 1, 0));
  239. assertEquals(new Long(36L), c.getStartValue(0, 1, 1));
  240. assertEquals(new Long(50L), c.getStartValue(1, 2, 0));
  241. assertEquals(new Long(56L), c.getStartValue(1, 2, 1));
  242. TaskSeriesCollection c3 = createCollection3();
  243. assertEquals(new Long(11), c3.getStartValue(0, 0, 0));
  244. assertEquals(new Long(22), c3.getStartValue(0, 1, 0));
  245. assertEquals(new Long(33), c3.getStartValue(0, 1, 1));
  246. assertTrue(c3.getStartValue(1, 0, 0) == null);
  247. assertEquals(new Long(44), c3.getStartValue(1, 1, 0));
  248. assertEquals(new Long(55), c3.getStartValue(1, 1, 1));
  249. assertEquals(new Long(66), c3.getStartValue(1, 1, 2));
  250. }
  251. /**
  252. * A check for a null task duration.
  253. */
  254. @Test
  255. public void testGetStartValue3() {
  256. TaskSeriesCollection c = new TaskSeriesCollection();
  257. TaskSeries s = new TaskSeries("Series 1");
  258. s.add(new Task("Task with null duration", null));
  259. c.add(s);
  260. Number millis = c.getStartValue("Series 1", "Task with null duration");
  261. assertTrue(millis == null);
  262. }
  263. /**
  264. * Some tests for the getEndValue() method.
  265. */
  266. @Test
  267. public void testGetEndValue() {
  268. TaskSeriesCollection c = createCollection1();
  269. assertEquals(new Long(2L), c.getEndValue("S1", "Task 1"));
  270. assertEquals(new Long(4L), c.getEndValue("S1", "Task 2"));
  271. assertEquals(new Long(6L), c.getEndValue("S2", "Task 3"));
  272. assertEquals(new Long(2L), c.getEndValue(0, 0));
  273. assertEquals(new Long(4L), c.getEndValue(0, 1));
  274. assertEquals(null, c.getEndValue(0, 2));
  275. assertEquals(null, c.getEndValue(1, 0));
  276. assertEquals(null, c.getEndValue(1, 1));
  277. assertEquals(new Long(6L), c.getEndValue(1, 2));
  278. // test collection 3, which doesn't define all tasks in all series
  279. TaskSeriesCollection c3 = createCollection3();
  280. assertEquals(new Long(200), c3.getEndValue(0, 0));
  281. assertEquals(new Long(350), c3.getEndValue(0, 1));
  282. assertTrue(c3.getEndValue(1, 0) == null);
  283. assertEquals(new Long(3350), c3.getEndValue(1, 1));
  284. }
  285. /**
  286. * Some tests for the getEndValue() method for sub-intervals.
  287. */
  288. @Test
  289. public void testGetEndValue2() {
  290. TaskSeriesCollection c = createCollection2();
  291. assertEquals(new Long(15L), c.getEndValue("S1", "Task 1", 0));
  292. assertEquals(new Long(20L), c.getEndValue("S1", "Task 1", 1));
  293. assertEquals(new Long(35L), c.getEndValue("S1", "Task 2", 0));
  294. assertEquals(new Long(40L), c.getEndValue("S1", "Task 2", 1));
  295. assertEquals(new Long(55L), c.getEndValue("S2", "Task 3", 0));
  296. assertEquals(new Long(60L), c.getEndValue("S2", "Task 3", 1));
  297. assertEquals(new Long(15L), c.getEndValue(0, 0, 0));
  298. assertEquals(new Long(20L), c.getEndValue(0, 0, 1));
  299. assertEquals(new Long(35L), c.getEndValue(0, 1, 0));
  300. assertEquals(new Long(40L), c.getEndValue(0, 1, 1));
  301. assertEquals(new Long(55L), c.getEndValue(1, 2, 0));
  302. assertEquals(new Long(60L), c.getEndValue(1, 2, 1));
  303. TaskSeriesCollection c3 = createCollection3();
  304. assertEquals(new Long(111), c3.getEndValue(0, 0, 0));
  305. assertEquals(new Long(222), c3.getEndValue(0, 1, 0));
  306. assertEquals(new Long(333), c3.getEndValue(0, 1, 1));
  307. assertTrue(c3.getEndValue(1, 0, 0) == null);
  308. assertEquals(new Long(444), c3.getEndValue(1, 1, 0));
  309. assertEquals(new Long(555), c3.getEndValue(1, 1, 1));
  310. assertEquals(new Long(666), c3.getEndValue(1, 1, 2));
  311. }
  312. /**
  313. * A check for a null task duration.
  314. */
  315. @Test
  316. public void testGetEndValue3() {
  317. TaskSeriesCollection c = new TaskSeriesCollection();
  318. TaskSeries s = new TaskSeries("Series 1");
  319. s.add(new Task("Task with null duration", null));
  320. c.add(s);
  321. Number millis = c.getEndValue("Series 1", "Task with null duration");
  322. assertTrue(millis == null);
  323. }
  324. /**
  325. * Some tests for the getPercentComplete() method.
  326. */
  327. @Test
  328. public void testGetPercentComplete() {
  329. TaskSeriesCollection c = createCollection2();
  330. assertEquals(new Double(0.10), c.getPercentComplete("S1", "Task 1"));
  331. assertEquals(new Double(0.20), c.getPercentComplete("S1", "Task 2"));
  332. assertEquals(new Double(0.30), c.getPercentComplete("S2", "Task 3"));
  333. assertEquals(new Double(0.10), c.getPercentComplete(0, 0));
  334. assertEquals(new Double(0.20), c.getPercentComplete(0, 1));
  335. assertEquals(null, c.getPercentComplete(0, 2));
  336. assertEquals(null, c.getPercentComplete(1, 0));
  337. assertEquals(null, c.getPercentComplete(1, 1));
  338. assertEquals(new Double(0.30), c.getPercentComplete(1, 2));
  339. // test collection 3, which doesn't define all tasks in all series
  340. TaskSeriesCollection c3 = createCollection3();
  341. assertEquals(new Double(0.1), c3.getPercentComplete(0, 0));
  342. assertEquals(new Double(0.2), c3.getPercentComplete(0, 1));
  343. assertTrue(c3.getPercentComplete(1, 0) == null);
  344. assertEquals(new Double(0.3), c3.getPercentComplete(1, 1));
  345. assertEquals(new Double(0.111), c3.getPercentComplete(0, 0, 0));
  346. assertEquals(new Double(0.222), c3.getPercentComplete(0, 1, 0));
  347. assertEquals(new Double(0.333), c3.getPercentComplete(0, 1, 1));
  348. assertEquals(new Double(0.444), c3.getPercentComplete(1, 1, 0));
  349. assertEquals(new Double(0.555), c3.getPercentComplete(1, 1, 1));
  350. assertEquals(new Double(0.666), c3.getPercentComplete(1, 1, 2));
  351. }
  352. /**
  353. * A test for the getColumnCount() method.
  354. */
  355. @Test
  356. public void testGetColumnCount() {
  357. TaskSeriesCollection c = createCollection1();
  358. assertEquals(3, c.getColumnCount());
  359. }
  360. /**
  361. * Some tests for the getColumnKey() method.
  362. */
  363. public void testGetColumnKey() {
  364. TaskSeriesCollection c = createCollection1();
  365. assertEquals("Task 1", c.getColumnKey(0));
  366. assertEquals("Task 2", c.getColumnKey(1));
  367. assertEquals("Task 3", c.getColumnKey(2));
  368. }
  369. /**
  370. * Some tests for the getColumnIndex() method.
  371. */
  372. @Test
  373. public void testGetColumnIndex() {
  374. TaskSeriesCollection c = createCollection1();
  375. assertEquals(0, c.getColumnIndex("Task 1"));
  376. assertEquals(1, c.getColumnIndex("Task 2"));
  377. assertEquals(2, c.getColumnIndex("Task 3"));
  378. }
  379. /**
  380. * Confirm that the equals method can distinguish all the required fields.
  381. */
  382. @Test
  383. public void testEquals() {
  384. TaskSeries s1 = new TaskSeries("S");
  385. s1.add(new Task("T1", new Date(1), new Date(2)));
  386. s1.add(new Task("T2", new Date(11), new Date(22)));
  387. TaskSeries s2 = new TaskSeries("S");
  388. s2.add(new Task("T1", new Date(1), new Date(2)));
  389. s2.add(new Task("T2", new Date(11), new Date(22)));
  390. TaskSeriesCollection c1 = new TaskSeriesCollection();
  391. c1.add(s1);
  392. c1.add(s2);
  393. TaskSeries s1b = new TaskSeries("S");
  394. s1b.add(new Task("T1", new Date(1), new Date(2)));
  395. s1b.add(new Task("T2", new Date(11), new Date(22)));
  396. TaskSeries s2b = new TaskSeries("S");
  397. s2b.add(new Task("T1", new Date(1), new Date(2)));
  398. s2b.add(new Task("T2", new Date(11), new Date(22)));
  399. TaskSeriesCollection c2 = new TaskSeriesCollection();
  400. c2.add(s1b);
  401. c2.add(s2b);
  402. assertTrue(c1.equals(c2));
  403. assertTrue(c2.equals(c1));
  404. }
  405. /**
  406. * Confirm that cloning works.
  407. */
  408. @Test
  409. public void testCloning() throws CloneNotSupportedException {
  410. TaskSeries s1 = new TaskSeries("S1");
  411. s1.add(new Task("T1", new Date(1), new Date(2)));
  412. s1.add(new Task("T2", new Date(11), new Date(22)));
  413. TaskSeries s2 = new TaskSeries("S2");
  414. s2.add(new Task("T1", new Date(33), new Date(44)));
  415. s2.add(new Task("T2", new Date(55), new Date(66)));
  416. TaskSeriesCollection c1 = new TaskSeriesCollection();
  417. c1.add(s1);
  418. c1.add(s2);
  419. TaskSeriesCollection c2 = (TaskSeriesCollection) c1.clone();
  420. assertTrue(c1 != c2);
  421. assertTrue(c1.getClass() == c2.getClass());
  422. assertTrue(c1.equals(c2));
  423. // basic check for independence
  424. s1.add(new Task("T3", new Date(21), new Date(33)));
  425. assertFalse(c1.equals(c2));
  426. TaskSeries series = c2.getSeries("S1");
  427. series.add(new Task("T3", new Date(21), new Date(33)));
  428. assertTrue(c1.equals(c2));
  429. }
  430. /**
  431. * Serialize an instance, restore it, and check for equality.
  432. */
  433. @Test
  434. public void testSerialization() {
  435. TaskSeries s1 = new TaskSeries("S");
  436. s1.add(new Task("T1", new Date(1), new Date(2)));
  437. s1.add(new Task("T2", new Date(11), new Date(22)));
  438. TaskSeries s2 = new TaskSeries("S");
  439. s2.add(new Task("T1", new Date(1), new Date(2)));
  440. s2.add(new Task("T2", new Date(11), new Date(22)));
  441. TaskSeriesCollection c1 = new TaskSeriesCollection();
  442. c1.add(s1);
  443. c1.add(s2);
  444. TaskSeriesCollection c2 = (TaskSeriesCollection)
  445. TestUtilities.serialised(c1);
  446. assertEquals(c1, c2);
  447. }
  448. /**
  449. * A test for bug report 697153.
  450. */
  451. @Test
  452. public void test697153() {
  453. TaskSeries s1 = new TaskSeries("S1");
  454. s1.add(new Task("Task 1", new SimpleTimePeriod(new Date(),
  455. new Date())));
  456. s1.add(new Task("Task 2", new SimpleTimePeriod(new Date(),
  457. new Date())));
  458. s1.add(new Task("Task 3", new SimpleTimePeriod(new Date(),
  459. new Date())));
  460. TaskSeries s2 = new TaskSeries("S2");
  461. s2.add(new Task("Task 2", new SimpleTimePeriod(new Date(),
  462. new Date())));
  463. s2.add(new Task("Task 3", new SimpleTimePeriod(new Date(),
  464. new Date())));
  465. s2.add(new Task("Task 4", new SimpleTimePeriod(new Date(),
  466. new Date())));
  467. TaskSeriesCollection tsc = new TaskSeriesCollection();
  468. tsc.add(s1);
  469. tsc.add(s2);
  470. s1.removeAll();
  471. int taskCount = tsc.getColumnCount();
  472. assertEquals(3, taskCount);
  473. }
  474. /**
  475. * A test for bug report 800324.
  476. */
  477. @Test
  478. public void test800324() {
  479. TaskSeries s1 = new TaskSeries("S1");
  480. s1.add(new Task("Task 1", new SimpleTimePeriod(new Date(),
  481. new Date())));
  482. s1.add(new Task("Task 2", new SimpleTimePeriod(new Date(),
  483. new Date())));
  484. s1.add(new Task("Task 3", new SimpleTimePeriod(new Date(),
  485. new Date())));
  486. TaskSeriesCollection tsc = new TaskSeriesCollection();
  487. tsc.add(s1);
  488. // these methods should throw an IndexOutOfBoundsException since the
  489. // column is too high...
  490. try {
  491. /* Number start = */ tsc.getStartValue(0, 3);
  492. assertTrue(false);
  493. }
  494. catch (IndexOutOfBoundsException e) {
  495. // expected
  496. }
  497. try {
  498. /* Number end = */ tsc.getEndValue(0, 3);
  499. assertTrue(false);
  500. }
  501. catch (IndexOutOfBoundsException e) {
  502. // expected
  503. }
  504. try {
  505. /* int count = */ tsc.getSubIntervalCount(0, 3);
  506. assertTrue(false);
  507. }
  508. catch (IndexOutOfBoundsException e) {
  509. // expected
  510. }
  511. }
  512. /**
  513. * Some tests for the bug report 1099331. We create a TaskSeriesCollection
  514. * with two series - the first series has two tasks, but the second has
  515. * only one. The key is to ensure that the methods in TaskSeriesCollection
  516. * translate the index values to key values *before* accessing the tasks
  517. * in the series.
  518. */
  519. @Test
  520. public void testGetSubIntervalCount() {
  521. TaskSeriesCollection tsc = createCollection3();
  522. assertEquals(1, tsc.getSubIntervalCount(0, 0));
  523. assertEquals(2, tsc.getSubIntervalCount(0, 1));
  524. assertEquals(0, tsc.getSubIntervalCount(1, 0));
  525. assertEquals(3, tsc.getSubIntervalCount(1, 1));
  526. }
  527. /**
  528. * Some basic tests for the getSeries() methods.
  529. */
  530. @Test
  531. public void testGetSeries() {
  532. TaskSeries s1 = new TaskSeries("S1");
  533. TaskSeries s2 = new TaskSeries("S2");
  534. TaskSeriesCollection c = new TaskSeriesCollection();
  535. c.add(s1);
  536. assertEquals(c.getSeries(0), s1);
  537. assertEquals(c.getSeries("S1"), s1);
  538. assertEquals(c.getSeries("XX"), null);
  539. c.add(s2);
  540. assertEquals(c.getSeries(1), s2);
  541. assertEquals(c.getSeries("S2"), s2);
  542. boolean pass = false;
  543. try {
  544. c.getSeries(null);
  545. }
  546. catch (NullPointerException e) {
  547. pass = true;
  548. }
  549. assertTrue(pass);
  550. }
  551. /**
  552. * Some basic checks for the remove() method.
  553. */
  554. @Test
  555. public void testRemove() {
  556. TaskSeriesCollection c = new TaskSeriesCollection();
  557. TaskSeries s1 = new TaskSeries("S1");
  558. c.add(s1);
  559. assertEquals("S1", c.getSeries(0).getKey());
  560. c.remove(0);
  561. assertEquals(0, c.getSeriesCount());
  562. c.add(s1);
  563. boolean pass = false;
  564. try {
  565. c.remove(-1);
  566. }
  567. catch (IllegalArgumentException e) {
  568. pass = true;
  569. }
  570. assertTrue(pass);
  571. pass = false;
  572. try {
  573. c.remove(1);
  574. }
  575. catch (IllegalArgumentException e) {
  576. pass = true;
  577. }
  578. assertTrue(pass);
  579. }
  580. }