PageRenderTime 45ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 1ms

/javaunohelper/test/com/sun/star/lib/uno/helper/InterfaceContainer_Test.java

https://bitbucket.org/markjenkins/libreoffice_ubuntu-debian-fixes
Java | 967 lines | 844 code | 77 blank | 46 comment | 166 complexity | 359944eee01f209fe065dafd9ad6d69f MD5 | raw file
Possible License(s): GPL-3.0, LGPL-3.0, MPL-2.0-no-copyleft-exception, LGPL-2.1, BSD-3-Clause-No-Nuclear-License-2014
  1. /*
  2. * This file is part of the LibreOffice project.
  3. *
  4. * This Source Code Form is subject to the terms of the Mozilla Public
  5. * License, v. 2.0. If a copy of the MPL was not distributed with this
  6. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  7. *
  8. * This file incorporates work covered by the following license notice:
  9. *
  10. * Licensed to the Apache Software Foundation (ASF) under one or more
  11. * contributor license agreements. See the NOTICE file distributed
  12. * with this work for additional information regarding copyright
  13. * ownership. The ASF licenses this file to you under the Apache
  14. * License, Version 2.0 (the "License"); you may not use this file
  15. * except in compliance with the License. You may obtain a copy of
  16. * the License at http://www.apache.org/licenses/LICENSE-2.0 .
  17. */
  18. package com.sun.star.lib.uno.helper;
  19. import java.util.Iterator;
  20. import java.util.ListIterator;
  21. import com.sun.star.uno.XWeak;
  22. import com.sun.star.lang.XTypeProvider;
  23. import java.util.ArrayList;
  24. //import com.sun.star.lib.uno.environments.java.Proxy;
  25. import com.sun.star.lib.uno.environments.java.java_environment;
  26. import java.util.List;
  27. public class InterfaceContainer_Test
  28. {
  29. java_environment env= new java_environment(null);
  30. /** Creates a new instance of InterfaceContainerTest */
  31. AWeakBase obj1,obj2,obj3,obj4;
  32. Object proxyObj1Weak1;
  33. Object proxyObj3Weak1;
  34. Object proxyObj3Weak2;
  35. Object proxyObj3TypeProv;
  36. Object proxyObj2TypeProv;
  37. //contains original objects
  38. List<Object> list1;
  39. //contains original objects + proxies
  40. List<Object> list2;
  41. //contains original object + proxies + null value
  42. List<Object> list3;
  43. public InterfaceContainer_Test()
  44. {
  45. obj1= new AWeakBase();
  46. obj2= new AWeakBase();
  47. obj3= new AWeakBase();
  48. obj4= new AWeakBase();
  49. proxyObj1Weak1= ProxyProvider.createProxy(obj1, XWeak.class);
  50. proxyObj3Weak1= ProxyProvider.createProxy(obj3, XWeak.class);
  51. proxyObj3Weak2= ProxyProvider.createProxy(obj3, XWeak.class);
  52. proxyObj2TypeProv= ProxyProvider.createProxy(obj2, XTypeProvider.class);
  53. proxyObj3TypeProv= ProxyProvider.createProxy(obj3, XTypeProvider.class);
  54. list1= new ArrayList<Object>();
  55. list1.add(obj1);
  56. list1.add(obj2);
  57. list1.add(obj3);
  58. list2= new ArrayList<Object>();
  59. list2.add(obj1);
  60. list2.add(proxyObj2TypeProv);
  61. list2.add(proxyObj3TypeProv);
  62. list3= new ArrayList<Object>();
  63. list3.add(obj1);
  64. list3.add(null);
  65. list3.add(proxyObj2TypeProv);
  66. list3.add(proxyObj3Weak1);
  67. }
  68. /** Tests add(object), size(), clear();
  69. */
  70. public boolean add()
  71. {
  72. System.out.println("Testing List.add(Object), List.size(), List.clear(), List.isEmpty()");
  73. InterfaceContainer cont= new InterfaceContainer();
  74. boolean r[]= new boolean[50];
  75. int i= 0;
  76. r[i++]= cont.size() == 0;
  77. r[i++]= cont.add(obj1);
  78. r[i++]= cont.size() == 1;
  79. r[i++]= cont.add(obj1); // add the same object again
  80. r[i++]= cont.size() == 2;
  81. r[i++]= cont.add(proxyObj3TypeProv);
  82. r[i++]= cont.size() == 3;
  83. r[i++]= cont.isEmpty() ? false: true;
  84. cont.clear();
  85. r[i++]= cont.size() == 0;
  86. r[i++]= cont.isEmpty();
  87. boolean bOk= true;
  88. for (int c= 0; c < i; c++)
  89. bOk= bOk && r[c];
  90. if (bOk == false)
  91. System.out.println("Failed");
  92. else
  93. System.out.println("Ok");
  94. return bOk;
  95. }
  96. /**Tests list.addAll(Collection c), list.addAll(int index, Collection c)
  97. */
  98. public boolean listConstructors()
  99. {
  100. System.out.println("Testing Constructors of InterfaceContainer");
  101. boolean r[]= new boolean[50];
  102. int i= 0;
  103. InterfaceContainer cont= new InterfaceContainer(100);
  104. r[i++]= cont.elementData.length == 100;
  105. boolean bOk= true;
  106. for (int c= 0; c < i; c++)
  107. bOk= bOk && r[c];
  108. if (bOk == false)
  109. System.out.println("Failed");
  110. else
  111. System.out.println("Ok");
  112. return bOk;
  113. }
  114. public boolean trimToSize()
  115. {
  116. System.out.println("Testing InterfaceContainer.trimToSize");
  117. InterfaceContainer cont= new InterfaceContainer(100);
  118. boolean r[]= new boolean[50];
  119. int i= 0;
  120. cont.trimToSize();
  121. r[i++]= cont.isEmpty();
  122. cont= new InterfaceContainer(10);
  123. cont.addAll(list1);
  124. cont.trimToSize();
  125. r[i++]= cont.elementData.length == list1.size();
  126. boolean bOk= true;
  127. for (int c= 0; c < i; c++)
  128. bOk= bOk && r[c];
  129. if (bOk == false)
  130. System.out.println("Failed");
  131. else
  132. System.out.println("Ok");
  133. return bOk;
  134. }
  135. public boolean ensureCapacity()
  136. {
  137. System.out.println("Testing InterfaceContainer.ensureCapacity");
  138. InterfaceContainer cont= new InterfaceContainer(10);
  139. boolean r[]= new boolean[50];
  140. int i= 0;
  141. cont.ensureCapacity(9);
  142. r[i++]= cont.elementData.length >= 9;
  143. cont.ensureCapacity(11);
  144. r[i++]= cont.elementData.length >= 11;
  145. boolean bOk= true;
  146. for (int c= 0; c < i; c++)
  147. bOk= bOk && r[c];
  148. if (bOk == false)
  149. System.out.println("Failed");
  150. else
  151. System.out.println("Ok");
  152. return bOk;
  153. }
  154. public boolean addAll()
  155. {
  156. System.out.println("Testing List.addAll(Collection c), List.addAll(int index, Collection c)");
  157. InterfaceContainer cont= new InterfaceContainer();
  158. boolean r[]= new boolean[50];
  159. int i= 0;
  160. r[i++]= cont.addAll(list1);
  161. r[i++]= cont.size() == list1.size();
  162. for (int c= 0; c < cont.size(); c++)
  163. {
  164. r[i++]= list1.get(c) == cont.get(c);
  165. }
  166. cont.add(obj1);
  167. r[i++]= cont.addAll(1, list2);
  168. r[i++]= cont.get(0) == list1.get(0);
  169. r[i++]= cont.get(1) == list2.get(0);
  170. r[i++]= cont.get(2) == list2.get(1);
  171. r[i++]= cont.get(3) == list2.get(2);
  172. r[i++]= cont.get(4) == list1.get(1);
  173. r[i++]= cont.get(5) == list1.get(2);
  174. r[i++]= cont.get(6) == obj1;
  175. cont.clear();
  176. cont.addAll(list3);
  177. // the null element in list3 at index 1 is not added to cont
  178. r[i++]= cont.get(0) == list3.get(0);
  179. r[i++]= cont.get(1) == list3.get(2);
  180. r[i++]= cont.get(2) == list3.get(3);
  181. boolean bOk= true;
  182. for (int c= 0; c < i; c++)
  183. bOk= bOk && r[c];
  184. if (bOk == false)
  185. System.out.println("Failed");
  186. else
  187. System.out.println("Ok");
  188. return bOk;
  189. }
  190. /** Tests List.add(int index, Object element), List.get(int index)
  191. */
  192. public boolean get()
  193. {
  194. System.out.println("Testing List.add(int index, Object element), List.get(int index)");
  195. InterfaceContainer cont= new InterfaceContainer();
  196. boolean r[]= new boolean[50];
  197. int i= 0;
  198. cont.add(0, obj1);
  199. cont.add(1, obj2);
  200. cont.add(1, proxyObj3Weak1);
  201. cont.add(3, obj3);
  202. r[i++]= cont.get(0) == obj1;
  203. r[i++]= cont.get(1) == proxyObj3Weak1;
  204. r[i++]= cont.get(2) == obj2;
  205. r[i++]= cont.get(3) == obj3;
  206. try
  207. {
  208. cont.add(5, obj1);
  209. }catch( java.lang.Exception e)
  210. {
  211. r[i++]= true;
  212. }
  213. boolean bOk= true;
  214. for (int c= 0; c < i; c++)
  215. bOk= bOk && r[c];
  216. if (bOk == false)
  217. System.out.println("Failed");
  218. else
  219. System.out.println("Ok");
  220. return bOk;
  221. }
  222. /** Tests List.contains
  223. */
  224. public boolean contains()
  225. {
  226. System.out.println("Testing List.contains()");
  227. InterfaceContainer cont= new InterfaceContainer();
  228. boolean r[]= new boolean[50];
  229. int i= 0;
  230. r[i++]= cont.contains(obj1) ? false : true; // nothing in the list
  231. cont.add(obj1);
  232. cont.add(proxyObj2TypeProv);
  233. cont.add(proxyObj3TypeProv);
  234. r[i++]= cont.contains(obj1);
  235. r[i++]= cont.contains(obj2);
  236. r[i++]= cont.contains(proxyObj3Weak1);
  237. r[i++]= cont.contains(proxyObj3Weak2);
  238. r[i++]= cont.contains(proxyObj1Weak1);
  239. r[i++]= cont.contains(obj3);
  240. r[i++]= cont.contains(null) ? false : true;
  241. boolean bOk= true;
  242. for (int c= 0; c < i; c++)
  243. bOk= bOk && r[c];
  244. if ( ! bOk )
  245. System.out.println("Failed");
  246. else
  247. System.out.println("Ok");
  248. return bOk;
  249. }
  250. /** Tests List.containsAll
  251. */
  252. public boolean containsAll()
  253. {
  254. System.out.println("Testing List.containsAll");
  255. InterfaceContainer cont= new InterfaceContainer();
  256. boolean r[]= new boolean[50];
  257. int i= 0;
  258. cont.addAll(list1);
  259. r[i++]= cont.containsAll(list1);
  260. cont.clear();
  261. cont.addAll(list2);
  262. r[i++]= cont.containsAll(list2);
  263. cont.clear();
  264. cont.addAll(list3); // the null element in list3 is not added to cont
  265. r[i++]= cont.containsAll(list3) ? false : true;
  266. cont.clear();
  267. for( int x= 0; x < 6; x++)
  268. cont.add(obj4);
  269. r[i++]= cont.contains(list1) ? false : true;
  270. cont.add(1, list1.get(0));
  271. cont.add(3, list1.get(1));
  272. cont.add(5, list1.get(2));
  273. r[i++]= cont.contains(list1) ? false : true;
  274. boolean bOk= true;
  275. for (int c= 0; c < i; c++)
  276. bOk= bOk && r[c];
  277. if ( ! bOk )
  278. System.out.println("Failed");
  279. else
  280. System.out.println("Ok");
  281. return bOk;
  282. }
  283. /** Tests List.indexOf, List.lastIndexOf
  284. */
  285. public boolean indexOf()
  286. {
  287. System.out.println("Testing List.indexOf(Object element), List.lastIndexOf(Object element)");
  288. InterfaceContainer cont= new InterfaceContainer();
  289. boolean r[]= new boolean[50];
  290. int i= 0;
  291. cont.addAll(list1);
  292. cont.addAll(list1);
  293. r[i++]= cont.indexOf(obj3) == 2;
  294. r[i++]= cont.lastIndexOf(obj3) == 5;
  295. cont.clear();
  296. cont.addAll(list2);
  297. cont.addAll(list2);
  298. r[i++]= cont.indexOf(proxyObj3Weak1) == 2;
  299. r[i++]= cont.lastIndexOf(proxyObj3Weak2) == 5;
  300. boolean bOk= true;
  301. for (int c= 0; c < i; c++)
  302. bOk= bOk && r[c];
  303. if ( ! bOk )
  304. System.out.println("Failed");
  305. else
  306. System.out.println("Ok");
  307. return bOk;
  308. }
  309. /** Tests List.remove(int index), List.remove(Object element), List.removeAll(Collection c)
  310. */
  311. public boolean remove()
  312. {
  313. System.out.println("Testing List.remove(int index), List.remove(Object element), List.removeAll(Collection c)");
  314. InterfaceContainer cont= new InterfaceContainer();
  315. boolean r[]= new boolean[50];
  316. int i= 0;
  317. cont.addAll(list2);
  318. r[i++]= proxyObj2TypeProv.equals(cont.remove(1));
  319. r[i++]= cont.size() == 2;
  320. cont.clear();
  321. cont.addAll(list2);
  322. r[i++]= cont.remove(obj1);
  323. r[i++]= cont.remove(proxyObj2TypeProv);
  324. r[i++]= cont.remove(proxyObj3Weak2);
  325. r[i++]= cont.isEmpty();
  326. cont.clear();
  327. cont.addAll(list3);
  328. r[i++]= cont.removeAll(list3);
  329. r[i++]= cont.isEmpty();
  330. cont.addAll(list2);
  331. List<Object> list= new ArrayList<Object>();
  332. list.add(list2.get(0));
  333. list.add(list2.get(1));
  334. list.add(proxyObj3Weak2);
  335. r[i++]= cont.removeAll(list);
  336. r[i++]= cont.isEmpty();
  337. boolean bOk= true;
  338. for (int c= 0; c < i; c++)
  339. bOk= bOk && r[c];
  340. if ( ! bOk )
  341. System.out.println("Failed");
  342. else
  343. System.out.println("Ok");
  344. return bOk;
  345. }
  346. /** Tests List.retainAll
  347. */
  348. public boolean retainAll()
  349. {
  350. System.out.println("Testing List.retainAll(Collection c)");
  351. InterfaceContainer cont= new InterfaceContainer();
  352. boolean r[]= new boolean[50];
  353. int i= 0;
  354. cont.addAll(list1); //obj1, obj2, obj3
  355. cont.addAll(list2); //obj1, proxyObj2TypeProv, proxyObj3TypeProv
  356. List<Object> list = new ArrayList<Object>();
  357. list.add(obj1);
  358. list.add(proxyObj3Weak1);
  359. r[i++]= cont.retainAll(list);
  360. r[i++]= cont.get(0) == obj1;
  361. r[i++]= cont.get(1) == obj3;
  362. r[i++]= cont.get(2) == obj1;
  363. r[i++]= cont.get(3) == proxyObj3TypeProv;
  364. r[i++]= 4 == cont.size();
  365. boolean bOk= true;
  366. for (int c= 0; c < i; c++)
  367. bOk= bOk && r[c];
  368. if ( ! bOk )
  369. System.out.println("Failed");
  370. else
  371. System.out.println("Ok");
  372. return bOk;
  373. }
  374. /** Tests List.set(int index, Object element)
  375. **/
  376. public boolean set()
  377. {
  378. System.out.println("Testing List.set(int index, Object element)");
  379. boolean r[]= new boolean[50];
  380. int i= 0;
  381. InterfaceContainer cont= new InterfaceContainer();
  382. cont.addAll(list2);
  383. Object o1= cont.set(0, obj3);
  384. Object o2= cont.set(2, proxyObj3Weak1);
  385. r[i++]= o1 == list2.get(0);
  386. r[i++]= o2 == list2.get(2);
  387. r[i++]= cont.get(0) == obj3;
  388. r[i++]= cont.get(2) == proxyObj3Weak1;
  389. boolean bOk= true;
  390. for (int c= 0; c < i; c++)
  391. bOk= bOk && r[c];
  392. if ( ! bOk )
  393. System.out.println("Failed");
  394. else
  395. System.out.println("Ok");
  396. return bOk;
  397. }
  398. /** Tests List.toArray(), List.toArray(Object[] a)
  399. */
  400. public boolean toArray()
  401. {
  402. System.out.println("Testing List.toArray(), List.toArray(Object[] a)");
  403. InterfaceContainer cont= new InterfaceContainer();
  404. boolean r[]= new boolean[50];
  405. int i= 0;
  406. cont.addAll(list1);
  407. Object[] ar= cont.toArray();
  408. Object[] arOrig= list1.toArray();
  409. r[i++]= ar.length == arOrig.length;
  410. r[i]= true;
  411. for (int c= 0; c < ar.length; c++)
  412. r[i]= r[i] && ar[c] == arOrig[c];
  413. i++;
  414. XWeak[] arWeak= new XWeak[3];
  415. XWeak[] arWeak2= (XWeak[])cont.toArray(arWeak);
  416. r[i++]= ar.length == arWeak2.length;
  417. r[i]= true;
  418. for (int c= 0; c < ar.length; c++)
  419. r[i]= r[i] && ar[c] == arWeak2[c];
  420. i++;
  421. boolean bOk= true;
  422. for (int c= 0; c < i; c++)
  423. bOk= bOk && r[c];
  424. if ( ! bOk )
  425. System.out.println("Failed");
  426. else
  427. System.out.println("Ok");
  428. return bOk;
  429. }
  430. public boolean Iterator_next()
  431. {
  432. System.out.println("Testing InterfaceContainer.iterator, Iterator.next()");
  433. InterfaceContainer cont= new InterfaceContainer();
  434. boolean r[]= new boolean[50];
  435. int i= 0;
  436. cont.addAll(list1);
  437. Iterator it= cont.iterator();
  438. r[i++]= it.next() == list1.get(0);
  439. r[i++]= it.next() == list1.get(1);
  440. r[i++]= it.next() == list1.get(2);
  441. try
  442. {
  443. it.next();
  444. }catch(java.util.NoSuchElementException ne)
  445. {
  446. r[i++]= true;
  447. }catch(Exception e)
  448. {
  449. r[i++]= false;
  450. }
  451. boolean bOk= true;
  452. for (int c= 0; c < i; c++)
  453. bOk= bOk && r[c];
  454. if ( ! bOk )
  455. System.out.println("Failed");
  456. else
  457. System.out.println("Ok");
  458. return bOk;
  459. }
  460. public boolean Iterator_hasNext()
  461. {
  462. System.out.println("Testing, Iterator.next()");
  463. InterfaceContainer cont= new InterfaceContainer();
  464. boolean r[]= new boolean[50];
  465. int i= 0;
  466. Iterator it= cont.iterator();
  467. r[i++]= ! it.hasNext();
  468. cont.addAll(list1);
  469. it= cont.iterator();
  470. r[i++]= it.hasNext();
  471. it.next();
  472. r[i++]= it.hasNext();
  473. it.next();
  474. r[i++]= it.hasNext();
  475. it.next();
  476. r[i++]= ! it.hasNext();
  477. boolean bOk= true;
  478. for (int c= 0; c < i; c++)
  479. bOk= bOk && r[c];
  480. if ( ! bOk )
  481. System.out.println("Failed");
  482. else
  483. System.out.println("Ok");
  484. return bOk;
  485. }
  486. public boolean Iterator_remove()
  487. {
  488. System.out.println("Testing, Iterator.remove()");
  489. InterfaceContainer cont= new InterfaceContainer();
  490. boolean r[]= new boolean[50];
  491. int i= 0;
  492. Iterator it= cont.iterator();
  493. try
  494. {
  495. it.remove();
  496. }
  497. catch( IllegalStateException ie)
  498. {
  499. r[i++]= true;
  500. }
  501. catch(java.lang.Exception e)
  502. {
  503. r[i++]= false;
  504. }
  505. cont.add(obj1);
  506. it= cont.iterator();
  507. it.next();
  508. it.remove();
  509. r[i++]= cont.isEmpty();
  510. try
  511. {
  512. it.remove();
  513. }
  514. catch (IllegalStateException ie)
  515. {
  516. r[i++]= true;
  517. }
  518. catch (Exception e)
  519. {
  520. r[i++]= false;
  521. }
  522. cont.clear();
  523. cont.addAll(list1);
  524. it= cont.iterator();
  525. while (it.hasNext())
  526. {
  527. it.next();
  528. it.remove();
  529. }
  530. r[i++]= cont.isEmpty();
  531. // 2 iterators, remove must not impair the other iterator
  532. cont.clear();
  533. cont.addAll(list1);
  534. int size= cont.size();
  535. it= cont.iterator();
  536. Iterator it2= cont.iterator();
  537. while (it.hasNext())
  538. {
  539. it.next();
  540. it.remove();
  541. }
  542. try
  543. {
  544. for( int c= 0; c < size; c++)
  545. it2.next();
  546. r[i++]= true;
  547. }
  548. catch(Exception e)
  549. {
  550. r[i++]= false;
  551. }
  552. r[i++]= cont.size() == 0;
  553. boolean bOk= true;
  554. for (int c= 0; c < i; c++)
  555. bOk= bOk && r[c];
  556. if ( ! bOk )
  557. System.out.println("Failed");
  558. else
  559. System.out.println("Ok");
  560. return bOk;
  561. }
  562. public boolean ListIterator_next()
  563. {
  564. System.out.println("Testing InterfaceContainer.listIerator, ListIterator.next()");
  565. InterfaceContainer cont= new InterfaceContainer();
  566. boolean r[]= new boolean[50];
  567. int i= 0;
  568. cont.addAll(list1);
  569. Iterator it= cont.listIterator();
  570. r[i++]= it.next() == list1.get(0);
  571. r[i++]= it.next() == list1.get(1);
  572. r[i++]= it.next() == list1.get(2);
  573. try
  574. {
  575. it.next();
  576. }catch(java.util.NoSuchElementException ne)
  577. {
  578. r[i++]= true;
  579. }catch(Exception e)
  580. {
  581. r[i++]= false;
  582. }
  583. boolean bOk= true;
  584. for (int c= 0; c < i; c++)
  585. bOk= bOk && r[c];
  586. if ( ! bOk )
  587. System.out.println("Failed");
  588. else
  589. System.out.println("Ok");
  590. return bOk;
  591. }
  592. public boolean ListIterator_hasNext()
  593. {
  594. System.out.println("Testing ListIterator.hasNext()");
  595. InterfaceContainer cont= new InterfaceContainer();
  596. boolean r[]= new boolean[50];
  597. int i= 0;
  598. Iterator it= cont.listIterator();
  599. r[i++]= ! it.hasNext();
  600. cont.addAll(list1);
  601. it= cont.listIterator();
  602. r[i++]= it.hasNext();
  603. it.next();
  604. r[i++]= it.hasNext();
  605. it.next();
  606. r[i++]= it.hasNext();
  607. it.next();
  608. r[i++]= ! it.hasNext();
  609. boolean bOk= true;
  610. for (int c= 0; c < i; c++)
  611. bOk= bOk && r[c];
  612. if ( ! bOk )
  613. System.out.println("Failed");
  614. else
  615. System.out.println("Ok");
  616. return bOk;
  617. }
  618. public boolean ListIterator_remove()
  619. {
  620. System.out.println("Testing ListIterator.remove()");
  621. InterfaceContainer cont= new InterfaceContainer();
  622. boolean r[]= new boolean[50];
  623. int i= 0;
  624. ListIterator it= cont.listIterator();
  625. try
  626. {
  627. it.remove();
  628. }
  629. catch( IllegalStateException ie)
  630. {
  631. r[i++]= true;
  632. }
  633. catch(java.lang.Exception e)
  634. {
  635. r[i++]= false;
  636. }
  637. cont.add(obj1);
  638. it= cont.listIterator();
  639. it.next();
  640. it.remove();
  641. r[i++]= cont.isEmpty();
  642. try
  643. {
  644. it.remove();
  645. }
  646. catch (IllegalStateException ie)
  647. {
  648. r[i++]= true;
  649. }
  650. catch (Exception e)
  651. {
  652. r[i++]= false;
  653. }
  654. cont.clear();
  655. cont.addAll(list1);
  656. it= cont.listIterator();
  657. while (it.hasNext())
  658. {
  659. it.next();
  660. it.remove();
  661. }
  662. r[i++]= cont.isEmpty();
  663. // 2 iterators, remove must not impair the other iterator
  664. cont.clear();
  665. cont.addAll(list1);
  666. int size= cont.size();
  667. it= cont.listIterator();
  668. Iterator it2= cont.listIterator();
  669. while (it.hasNext())
  670. {
  671. it.next();
  672. it.remove();
  673. }
  674. try
  675. {
  676. for( int c= 0; c < size; c++)
  677. it2.next();
  678. r[i++]= true;
  679. }
  680. catch(Exception e)
  681. {
  682. r[i++]= false;
  683. }
  684. r[i++]= cont.size() == 0;
  685. boolean bOk= true;
  686. for (int c= 0; c < i; c++)
  687. bOk= bOk && r[c];
  688. if ( ! bOk )
  689. System.out.println("Failed");
  690. else
  691. System.out.println("Ok");
  692. return bOk;
  693. }
  694. public boolean ListIterator_hasPrevious()
  695. {
  696. System.out.println("Testing ListIterator.hasPrevious()");
  697. InterfaceContainer cont= new InterfaceContainer();
  698. boolean r[]= new boolean[50];
  699. int i= 0;
  700. ListIterator it= cont.listIterator();
  701. r[i++]= ! it.hasPrevious();
  702. cont.addAll(list1);
  703. it= cont.listIterator();
  704. while (it.hasNext())
  705. {
  706. it.next();
  707. r[i++]= it.hasPrevious();
  708. }
  709. boolean bOk= true;
  710. for (int c= 0; c < i; c++)
  711. bOk= bOk && r[c];
  712. if ( ! bOk )
  713. System.out.println("Failed");
  714. else
  715. System.out.println("Ok");
  716. return bOk;
  717. }
  718. public boolean ListIterator_previous()
  719. {
  720. System.out.println("Testing ListIterator.previous()");
  721. InterfaceContainer cont= new InterfaceContainer();
  722. boolean r[]= new boolean[50];
  723. int i= 0;
  724. boolean bOk= true;
  725. cont.addAll(list1);
  726. // go to the end of our list and list1
  727. ListIterator it= cont.listIterator();
  728. while (it.hasNext())
  729. it.next();
  730. ListIterator it_list1= list1.listIterator();
  731. while (it_list1.hasNext())
  732. it_list1.next();
  733. while (it.hasPrevious())
  734. {
  735. r[i++]= it.previous() == it_list1.previous();
  736. }
  737. try
  738. {
  739. it.previous();
  740. r[i++]= false;
  741. }
  742. catch (java.util.NoSuchElementException e)
  743. {
  744. r[i++]=true;
  745. }
  746. for (int c= 0; c < i; c++)
  747. bOk= bOk && r[c];
  748. if ( ! bOk )
  749. System.out.println("Failed");
  750. else
  751. System.out.println("Ok");
  752. return bOk;
  753. }
  754. public boolean ListIterator_nextIndex()
  755. {
  756. System.out.println("Testing ListIterator.nextIndex()");
  757. InterfaceContainer cont= new InterfaceContainer();
  758. boolean r[]= new boolean[50];
  759. int i= 0;
  760. boolean bOk= true;
  761. ListIterator it= cont.listIterator();
  762. cont.addAll(list1);
  763. it= cont.listIterator();
  764. r[i++]= it.nextIndex() == 0;
  765. it.next();
  766. r[i++]= it.nextIndex() == 1;
  767. it.next();
  768. r[i++]= it.nextIndex() == 2;
  769. for (int c= 0; c < i; c++)
  770. bOk= bOk && r[c];
  771. if ( ! bOk )
  772. System.out.println("Failed");
  773. else
  774. System.out.println("Ok");
  775. return bOk;
  776. }
  777. public boolean ListIterator_previousIndex()
  778. {
  779. System.out.println("Testing ListIterator.previousIndex()");
  780. InterfaceContainer cont= new InterfaceContainer();
  781. boolean r[]= new boolean[50];
  782. int i= 0;
  783. boolean bOk= true;
  784. ListIterator it= cont.listIterator();
  785. cont.addAll(list1);
  786. it= cont.listIterator();
  787. while (it.hasNext())
  788. it.next();
  789. r[i++]= it.previousIndex() == 2;
  790. it.previous();
  791. r[i++]= it.previousIndex() == 1;
  792. it.previous();
  793. r[i++]= it.previousIndex() == 0;
  794. it.previous();
  795. for (int c= 0; c < i; c++)
  796. bOk= bOk && r[c];
  797. if ( ! bOk )
  798. System.out.println("Failed");
  799. else
  800. System.out.println("Ok");
  801. return bOk;
  802. }
  803. public boolean ListIterator_add()
  804. {
  805. System.out.println("Testing ListIterator.add()");
  806. InterfaceContainer cont= new InterfaceContainer();
  807. boolean r[]= new boolean[50];
  808. int i= 0;
  809. boolean bOk= true;
  810. ListIterator it= cont.listIterator();
  811. it.add(obj1);
  812. r[i++]= cont.size() == 1;
  813. it.add(obj2);
  814. r[i++]= cont.size() == 2;
  815. it.add(obj3);
  816. r[i++]= it.previous() == obj3;
  817. r[i++]= it.previous() == obj2;
  818. r[i++]= it.previous() == obj1;
  819. for (int c= 0; c < i; c++)
  820. bOk= bOk && r[c];
  821. if ( ! bOk )
  822. System.out.println("Failed");
  823. else
  824. System.out.println("Ok");
  825. return bOk;
  826. }
  827. public boolean disposeAndClear()
  828. {
  829. System.out.println("Testing InterfaceContainer.disposeAndClear");
  830. InterfaceContainer cont= new InterfaceContainer(10);
  831. boolean r[]= new boolean[50];
  832. int i= 0;
  833. cont.add(obj1);
  834. cont.add(obj2);
  835. cont.add(obj3);
  836. cont.add(proxyObj1Weak1);
  837. cont.add(proxyObj3TypeProv);
  838. System.out.println("Two proxies are called. Check the output:");
  839. cont.disposeAndClear(new com.sun.star.lang.EventObject());
  840. r[i++]= obj1.nDisposingCalled == 1;
  841. r[i++]= obj2.nDisposingCalled == 1;
  842. r[i++]= obj3.nDisposingCalled == 1;
  843. boolean bOk= true;
  844. for (int c= 0; c < i; c++)
  845. bOk= bOk && r[c];
  846. if (bOk == false)
  847. System.out.println("Failed");
  848. else
  849. System.out.println("Ok");
  850. return bOk;
  851. }
  852. public static void main(String[] args)
  853. {
  854. InterfaceContainer_Test test= new InterfaceContainer_Test();
  855. boolean r[]= new boolean[50];
  856. int i= 0;
  857. r[i++]= test.listConstructors();
  858. r[i++]= test.trimToSize();
  859. r[i++]= test.ensureCapacity();
  860. r[i++]= test.add();
  861. r[i++]= test.indexOf();
  862. r[i++]= test.contains();
  863. r[i++]= test.containsAll();
  864. r[i++]= test.get();
  865. r[i++]= test.addAll();
  866. r[i++]= test.remove();
  867. r[i++]= test.retainAll();
  868. r[i++]= test.set();
  869. r[i++]= test.toArray();
  870. r[i++]= test.Iterator_next();
  871. r[i++]= test.Iterator_hasNext();
  872. r[i++]= test.Iterator_remove();
  873. r[i++]= test.ListIterator_next();
  874. r[i++]= test.ListIterator_hasNext();
  875. r[i++]= test.ListIterator_remove();
  876. r[i++]= test.ListIterator_hasPrevious();
  877. r[i++]= test.ListIterator_previous();
  878. r[i++]= test.ListIterator_nextIndex();
  879. r[i++]= test.ListIterator_previousIndex();
  880. r[i++]= test.ListIterator_add();
  881. r[i++]= test.disposeAndClear();
  882. boolean bOk= true;
  883. for (int c= 0; c < i; c++)
  884. bOk= bOk && r[c];
  885. if ( ! bOk )
  886. System.out.println("Test finished.\nErrors occurred!!!");
  887. else
  888. System.out.println("Test finished. \nNo errors.");
  889. }
  890. }