/machinelearning/4.0.x/drools-eclipse3.3/drools-eclipse-test/src/test/java/org/drools/eclipse/editors/completion/CompletionContextTest.java

https://github.com/etirelli/droolsjbpm-contributed-experiments · Java · 1063 lines · 939 code · 109 blank · 15 comment · 0 complexity · 13ee6f117208c8a4b3f02964aeb4544c MD5 · raw file

  1. package org.drools.eclipse.editors.completion;
  2. import org.drools.lang.Location;
  3. import junit.framework.TestCase;
  4. /**
  5. * Test to check the location determination when doing code completion inside
  6. * rule condtions.
  7. *
  8. * @author <a href="mailto:kris_verlaenen@hotmail.com">kris verlaenen </a>
  9. *
  10. */
  11. public class CompletionContextTest extends TestCase {
  12. public void testColumnOperatorPattern() {
  13. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( property ").matches());
  14. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( property ").matches());
  15. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( property ").matches());
  16. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( name : property ").matches());
  17. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("(name:property ").matches());
  18. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( name:property ").matches());
  19. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( name:property ").matches());
  20. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( name : property ").matches());
  21. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( property1 == \"value\", property2 ").matches());
  22. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( property1 == \"value\", name : property2 ").matches());
  23. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( property1 == \"value\", name:property2 ").matches());
  24. assertTrue(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( property1 == \"value\", name : property2 ").matches());
  25. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( prop").matches());
  26. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("(prop").matches());
  27. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( prop").matches());
  28. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( name:prop").matches());
  29. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("(name:prop").matches());
  30. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( name : prop").matches());
  31. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( name : prop").matches());
  32. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( property <= ").matches());
  33. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( name : property == ").matches());
  34. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("(property==").matches());
  35. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( property contains ").matches());
  36. assertFalse(CompletionContext.PATTERN_PATTERN_OPERATOR.matcher("( property1 == \"value\", property2 >= ").matches());
  37. }
  38. public void testColumnArgumentPattern() {
  39. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property == ").matches());
  40. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property >= ").matches());
  41. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("(property== ").matches());
  42. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property == ").matches());
  43. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("( name : property == ").matches());
  44. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("(name:property== ").matches());
  45. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("( name : property == ").matches());
  46. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property1 == \"value\", property2 == ").matches());
  47. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property1 == \"value\",property2== ").matches());
  48. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property1 == \"value\", property2 == ").matches());
  49. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property == otherProp").matches());
  50. assertTrue(CompletionContext.PATTERN_PATTERN_COMPARATOR_ARGUMENT.matcher("(property==otherProp").matches());
  51. }
  52. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION1() {
  53. String input =
  54. "rule MyRule \n" +
  55. " when \n" +
  56. " ";
  57. Location location = new CompletionContext(input).getLocation();
  58. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  59. }
  60. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION2() {
  61. String input =
  62. "rule MyRule \n" +
  63. " when \n" +
  64. " Class( condition == true ) \n" +
  65. " ";
  66. Location location = new CompletionContext(input).getLocation();
  67. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  68. }
  69. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION3() {
  70. String input =
  71. "rule MyRule \n" +
  72. " when \n" +
  73. " class: Class( condition == true, condition2 == null ) \n" +
  74. " ";
  75. Location location = new CompletionContext(input).getLocation();
  76. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  77. }
  78. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION4() {
  79. String input =
  80. "rule MyRule \n" +
  81. " when \n" +
  82. " Cl";
  83. Location location = new CompletionContext(input).getLocation();
  84. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  85. }
  86. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION5() {
  87. String input =
  88. "rule MyRule \n" +
  89. " when \n" +
  90. " Class( condition == true ) \n" +
  91. " Cl";
  92. Location location = new CompletionContext(input).getLocation();
  93. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  94. }
  95. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION6() {
  96. String input =
  97. "rule MyRule \n" +
  98. " when \n" +
  99. " class: Cl";
  100. Location location = new CompletionContext(input).getLocation();
  101. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  102. }
  103. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION7() {
  104. String input =
  105. "rule MyRule \n" +
  106. " when \n" +
  107. " class:Cl";
  108. Location location = new CompletionContext(input).getLocation();
  109. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  110. }
  111. /** Inside of condition: start */
  112. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START1() {
  113. String input =
  114. "rule MyRule \n" +
  115. " when \n" +
  116. " Class (";
  117. Location location = new CompletionContext(input).getLocation();
  118. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  119. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  120. }
  121. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START2() {
  122. String input =
  123. "rule MyRule \n" +
  124. " when \n" +
  125. " Class ( na";
  126. Location location = new CompletionContext(input).getLocation();
  127. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  128. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  129. assertEquals("na", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  130. }
  131. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START3() {
  132. String input =
  133. "rule MyRule \n" +
  134. " when \n" +
  135. " Class ( name.subProperty['test'].subsu";
  136. Location location = new CompletionContext(input).getLocation();
  137. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  138. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  139. assertEquals("name.subProperty['test'].subsu", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  140. }
  141. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START4() {
  142. String input =
  143. "rule MyRule \n" +
  144. " when \n" +
  145. " Class ( condition == true, ";
  146. Location location = new CompletionContext(input).getLocation();
  147. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  148. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  149. }
  150. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START5() {
  151. String input =
  152. "rule MyRule \n" +
  153. " when \n" +
  154. " Class ( condition == true, na";
  155. Location location = new CompletionContext(input).getLocation();
  156. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  157. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  158. }
  159. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START6() {
  160. String input =
  161. "rule MyRule \n" +
  162. " when \n" +
  163. " Class ( \n" +
  164. " ";
  165. Location location = new CompletionContext(input).getLocation();
  166. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  167. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  168. }
  169. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START7() {
  170. String input =
  171. "rule MyRule \n" +
  172. " when \n" +
  173. " Class ( condition == true, \n" +
  174. " ";
  175. Location location = new CompletionContext(input).getLocation();
  176. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  177. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  178. }
  179. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START8() {
  180. String input =
  181. "rule MyRule \n" +
  182. " when \n" +
  183. " Class ( c: condition, \n" +
  184. " ";
  185. Location location = new CompletionContext(input).getLocation();
  186. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  187. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  188. }
  189. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START9a() {
  190. String input =
  191. "rule MyRule \n" +
  192. " when \n" +
  193. " Class ( name:";
  194. Location location = new CompletionContext(input).getLocation();
  195. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  196. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  197. }
  198. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START9b() {
  199. String input =
  200. "rule MyRule \n" +
  201. " when \n" +
  202. " Class ( name: ";
  203. Location location = new CompletionContext(input).getLocation();
  204. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  205. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  206. }
  207. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START10() {
  208. String input =
  209. "rule MyRule \n" +
  210. " when \n" +
  211. " Class ( name:";
  212. Location location = new CompletionContext(input).getLocation();
  213. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  214. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  215. }
  216. /** Inside of condition: Operator */
  217. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR1() {
  218. String input =
  219. "rule MyRule \n" +
  220. " when \n" +
  221. " Class ( property ";
  222. Location location = new CompletionContext(input).getLocation();
  223. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR, location.getType());
  224. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  225. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  226. }
  227. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR2() {
  228. String input =
  229. "rule MyRule \n" +
  230. " when \n" +
  231. " Class(property ";
  232. Location location = new CompletionContext(input).getLocation();
  233. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR, location.getType());
  234. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  235. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  236. }
  237. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR3() {
  238. String input =
  239. "rule MyRule \n" +
  240. " when \n" +
  241. " Class ( name : property ";
  242. Location location = new CompletionContext(input).getLocation();
  243. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR, location.getType());
  244. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  245. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  246. }
  247. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR4() {
  248. String input =
  249. "rule MyRule \n" +
  250. " when \n" +
  251. " Class (name:property ";
  252. Location location = new CompletionContext(input).getLocation();
  253. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR, location.getType());
  254. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  255. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  256. }
  257. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR5() {
  258. String input =
  259. "rule MyRule \n" +
  260. " when \n" +
  261. " Class (name:property ";
  262. Location location = new CompletionContext(input).getLocation();
  263. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR, location.getType());
  264. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  265. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  266. }
  267. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR6() {
  268. String input =
  269. "rule MyRule \n" +
  270. " when \n" +
  271. " Class ( name1 : property1, name : property ";
  272. Location location = new CompletionContext(input).getLocation();
  273. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR, location.getType());
  274. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  275. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  276. }
  277. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR7() {
  278. String input =
  279. "rule MyRule \n" +
  280. " when \n" +
  281. " Class ( name1 : property1 == \"value\", name : property ";
  282. Location location = new CompletionContext(input).getLocation();
  283. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR, location.getType());
  284. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  285. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  286. }
  287. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR8() {
  288. String input =
  289. "rule MyRule \n" +
  290. " when \n" +
  291. " Class ( name1 : property1 == \"value\",property ";
  292. Location location = new CompletionContext(input).getLocation();
  293. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR, location.getType());
  294. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  295. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  296. }
  297. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR9() {
  298. String input =
  299. "rule MyRule \n" +
  300. " when \n" +
  301. " Class ( name1 : property1, \n" +
  302. " name : property ";
  303. Location location = new CompletionContext(input).getLocation();
  304. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR, location.getType());
  305. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  306. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  307. }
  308. /** Inside of condition: argument */
  309. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT1() {
  310. String input =
  311. "rule MyRule \n" +
  312. " when \n" +
  313. " Class ( property == ";
  314. Location location = new CompletionContext(input).getLocation();
  315. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  316. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  317. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  318. assertEquals("==", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  319. }
  320. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT2() {
  321. String input =
  322. "rule MyRule \n" +
  323. " when \n" +
  324. " Class ( property== ";
  325. Location location = new CompletionContext(input).getLocation();
  326. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  327. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  328. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  329. assertEquals("==", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  330. }
  331. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT3() {
  332. String input =
  333. "rule MyRule \n" +
  334. " when \n" +
  335. " Class ( name : property <= ";
  336. Location location = new CompletionContext(input).getLocation();
  337. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  338. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  339. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  340. assertEquals("<=", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  341. }
  342. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT4() {
  343. String input =
  344. "rule MyRule \n" +
  345. " when \n" +
  346. " Class ( name:property != ";
  347. Location location = new CompletionContext(input).getLocation();
  348. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  349. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  350. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  351. assertEquals("!=", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  352. }
  353. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT5() {
  354. String input =
  355. "rule MyRule \n" +
  356. " when \n" +
  357. " Class ( name1 : property1, property2 == ";
  358. Location location = new CompletionContext(input).getLocation();
  359. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  360. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  361. assertEquals("property2", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  362. assertEquals("==", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  363. }
  364. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT6() {
  365. String input =
  366. "rule MyRule \n" +
  367. " when \n" +
  368. " Class (name:property== ";
  369. Location location = new CompletionContext(input).getLocation();
  370. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  371. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  372. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  373. assertEquals("==", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  374. }
  375. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT7() {
  376. String input =
  377. "rule MyRule \n" +
  378. " when \n" +
  379. " Class ( property == otherPropertyN";
  380. Location location = new CompletionContext(input).getLocation();
  381. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  382. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  383. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  384. assertEquals("==", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  385. }
  386. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT8() {
  387. String input =
  388. "rule MyRule \n" +
  389. " when \n" +
  390. " Class ( property == \"someth";
  391. Location location = new CompletionContext(input).getLocation();
  392. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  393. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  394. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  395. assertEquals("==", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  396. }
  397. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT9() {
  398. String input =
  399. "rule MyRule \n" +
  400. " when \n" +
  401. " Class ( property contains ";
  402. Location location = new CompletionContext(input).getLocation();
  403. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  404. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  405. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  406. assertEquals("contains", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  407. }
  408. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT10() {
  409. String input =
  410. "rule MyRule \n" +
  411. " when \n" +
  412. " Class ( property excludes ";
  413. Location location = new CompletionContext(input).getLocation();
  414. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  415. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  416. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  417. assertEquals("excludes", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  418. }
  419. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT11() {
  420. String input =
  421. "rule MyRule \n" +
  422. " when \n" +
  423. " Class ( property matches \"prop";
  424. Location location = new CompletionContext(input).getLocation();
  425. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  426. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  427. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  428. assertEquals("matches", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  429. }
  430. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT12() {
  431. String input =
  432. "rule MyRule \n" +
  433. " when \n" +
  434. " Class ( property in ";
  435. Location location = new CompletionContext(input).getLocation();
  436. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  437. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  438. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  439. assertEquals("in", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  440. }
  441. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_END1() {
  442. String input =
  443. "rule MyRule \n" +
  444. " when \n" +
  445. " Class ( property in ('1', '2') ";
  446. Location location = new CompletionContext(input).getLocation();
  447. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_END, location.getType());
  448. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  449. }
  450. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START11() {
  451. String input =
  452. "rule MyRule \n" +
  453. " when \n" +
  454. " Class ( property in ('1', '2'), ";
  455. Location location = new CompletionContext(input).getLocation();
  456. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  457. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  458. }
  459. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT13() {
  460. String input =
  461. "rule MyRule \n" +
  462. " when \n" +
  463. " Class ( property not in ";
  464. Location location = new CompletionContext(input).getLocation();
  465. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  466. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  467. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  468. assertEquals("in", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  469. }
  470. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_END2() {
  471. String input =
  472. "rule MyRule \n" +
  473. " when \n" +
  474. " Class ( property not in ('1', '2') ";
  475. Location location = new CompletionContext(input).getLocation();
  476. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_END, location.getType());
  477. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  478. }
  479. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START12() {
  480. String input =
  481. "rule MyRule \n" +
  482. " when \n" +
  483. " Class ( property not in ('1', '2'), ";
  484. Location location = new CompletionContext(input).getLocation();
  485. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  486. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  487. }
  488. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT14() {
  489. String input =
  490. "rule MyRule \n" +
  491. " when \n" +
  492. " Class ( property memberOf ";
  493. Location location = new CompletionContext(input).getLocation();
  494. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  495. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  496. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  497. assertEquals("memberOf", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  498. }
  499. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_END3() {
  500. String input =
  501. "rule MyRule \n" +
  502. " when \n" +
  503. " Class ( property memberOf collection ";
  504. Location location = new CompletionContext(input).getLocation();
  505. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_END, location.getType());
  506. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  507. }
  508. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START13() {
  509. String input =
  510. "rule MyRule \n" +
  511. " when \n" +
  512. " Class ( property memberOf collection, ";
  513. Location location = new CompletionContext(input).getLocation();
  514. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  515. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  516. }
  517. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT15() {
  518. String input =
  519. "rule MyRule \n" +
  520. " when \n" +
  521. " Class ( property not memberOf ";
  522. Location location = new CompletionContext(input).getLocation();
  523. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  524. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  525. assertEquals("property", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  526. assertEquals("memberOf", location.getProperty(Location.LOCATION_PROPERTY_OPERATOR));
  527. }
  528. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_END4() {
  529. String input =
  530. "rule MyRule \n" +
  531. " when \n" +
  532. " Class ( property not memberOf collection ";
  533. Location location = new CompletionContext(input).getLocation();
  534. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_END, location.getType());
  535. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  536. }
  537. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START14() {
  538. String input =
  539. "rule MyRule \n" +
  540. " when \n" +
  541. " Class ( property not memberOf collection, ";
  542. Location location = new CompletionContext(input).getLocation();
  543. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  544. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  545. }
  546. /** EXISTS */
  547. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_EXISTS1() {
  548. String input =
  549. "rule MyRule \n" +
  550. " when \n" +
  551. " exists ";
  552. Location location = new CompletionContext(input).getLocation();
  553. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS, location.getType());
  554. }
  555. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_EXISTS2() {
  556. String input =
  557. "rule MyRule \n" +
  558. " when \n" +
  559. " exists ( ";
  560. Location location = new CompletionContext(input).getLocation();
  561. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS, location.getType());
  562. }
  563. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_EXISTS3() {
  564. String input =
  565. "rule MyRule \n" +
  566. " when \n" +
  567. " exists(";
  568. Location location = new CompletionContext(input).getLocation();
  569. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS, location.getType());
  570. }
  571. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_EXISTS4() {
  572. String input =
  573. "rule MyRule \n" +
  574. " when \n" +
  575. " exists Cl";
  576. Location location = new CompletionContext(input).getLocation();
  577. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS, location.getType());
  578. }
  579. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_EXISTS5() {
  580. String input =
  581. "rule MyRule \n" +
  582. " when \n" +
  583. " exists ( Cl";
  584. Location location = new CompletionContext(input).getLocation();
  585. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS, location.getType());
  586. }
  587. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_EXISTS6() {
  588. String input =
  589. "rule MyRule \n" +
  590. " when \n" +
  591. " exists ( name : Cl";
  592. Location location = new CompletionContext(input).getLocation();
  593. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS, location.getType());
  594. }
  595. public void testCheckLHSLocationDeterminationINSIDE_CONDITION_START16() {
  596. String input =
  597. "rule MyRule \n" +
  598. " when \n" +
  599. " exists Class (";
  600. Location location = new CompletionContext(input).getLocation();
  601. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  602. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  603. }
  604. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION() {
  605. String input =
  606. "rule MyRule \n" +
  607. " when \n" +
  608. " exists Class ( ) \n" +
  609. " ";
  610. Location location = new CompletionContext(input).getLocation();
  611. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  612. }
  613. /** NOT */
  614. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_NOT1() {
  615. String input =
  616. "rule MyRule \n" +
  617. " when \n" +
  618. " not ";
  619. Location location = new CompletionContext(input).getLocation();
  620. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_NOT, location.getType());
  621. }
  622. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_NOT2() {
  623. String input =
  624. "rule MyRule \n" +
  625. " when \n" +
  626. " not Cl";
  627. Location location = new CompletionContext(input).getLocation();
  628. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_NOT, location.getType());
  629. }
  630. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_EXISTS7() {
  631. String input =
  632. "rule MyRule \n" +
  633. " when \n" +
  634. " not exists ";
  635. Location location = new CompletionContext(input).getLocation();
  636. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS, location.getType());
  637. }
  638. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_EXISTS8() {
  639. String input =
  640. "rule MyRule \n" +
  641. " when \n" +
  642. " not exists Cl";
  643. Location location = new CompletionContext(input).getLocation();
  644. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS, location.getType());
  645. }
  646. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START21() {
  647. String input =
  648. "rule MyRule \n" +
  649. " when \n" +
  650. " not Class (";
  651. Location location = new CompletionContext(input).getLocation();
  652. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  653. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  654. }
  655. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START22() {
  656. String input =
  657. "rule MyRule \n" +
  658. " when \n" +
  659. " not exists Class (";
  660. Location location = new CompletionContext(input).getLocation();
  661. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  662. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  663. }
  664. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START23() {
  665. String input =
  666. "rule MyRule \n" +
  667. " when \n" +
  668. " not exists name : Class (";
  669. Location location = new CompletionContext(input).getLocation();
  670. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  671. assertEquals("Class", location.getProperty(Location.LOCATION_PROPERTY_CLASS_NAME));
  672. }
  673. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION9() {
  674. String input =
  675. "rule MyRule \n" +
  676. " when \n" +
  677. " not Class () \n" +
  678. " ";
  679. Location location = new CompletionContext(input).getLocation();
  680. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  681. }
  682. /** AND */
  683. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR1() {
  684. String input =
  685. "rule MyRule \n" +
  686. " when \n" +
  687. " Class ( ) and ";
  688. Location location = new CompletionContext(input).getLocation();
  689. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  690. }
  691. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR2() {
  692. String input =
  693. "rule MyRule \n" +
  694. " when \n" +
  695. " Class ( ) && ";
  696. Location location = new CompletionContext(input).getLocation();
  697. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  698. }
  699. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR3() {
  700. String input =
  701. "rule MyRule \n" +
  702. " when \n" +
  703. " Class () and ";
  704. Location location = new CompletionContext(input).getLocation();
  705. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  706. }
  707. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR4() {
  708. String input =
  709. "rule MyRule \n" +
  710. " when \n" +
  711. " name : Class ( name: property ) and ";
  712. Location location = new CompletionContext(input).getLocation();
  713. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  714. }
  715. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR5() {
  716. String input =
  717. "rule MyRule \n" +
  718. " when \n" +
  719. " Class ( name: property ) \n" +
  720. " and ";
  721. Location location = new CompletionContext(input).getLocation();
  722. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  723. }
  724. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR6() {
  725. String input =
  726. "rule MyRule \n" +
  727. " when \n" +
  728. " Class ( ) and Cl";
  729. Location location = new CompletionContext(input).getLocation();
  730. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  731. }
  732. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR7() {
  733. String input =
  734. "rule MyRule \n" +
  735. " when \n" +
  736. " Class ( ) and name : Cl";
  737. Location location = new CompletionContext(input).getLocation();
  738. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  739. }
  740. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR8() {
  741. String input =
  742. "rule MyRule \n" +
  743. " when \n" +
  744. " Class ( ) && name : Cl";
  745. Location location = new CompletionContext(input).getLocation();
  746. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  747. }
  748. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION31() {
  749. String input =
  750. "rule MyRule \n" +
  751. " when \n" +
  752. " Class ( ) and Class ( ) \n" +
  753. " ";
  754. Location location = new CompletionContext(input).getLocation();
  755. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  756. }
  757. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION32() {
  758. String input =
  759. "rule MyRule \n" +
  760. " when \n" +
  761. " Class ( ) and not Class ( ) \n" +
  762. " ";
  763. Location location = new CompletionContext(input).getLocation();
  764. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  765. }
  766. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION33() {
  767. String input =
  768. "rule MyRule \n" +
  769. " when \n" +
  770. " Class ( ) and exists Class ( ) \n" +
  771. " ";
  772. Location location = new CompletionContext(input).getLocation();
  773. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  774. }
  775. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START20() {
  776. String input =
  777. "rule MyRule \n" +
  778. " when \n" +
  779. " Class ( ) and Class ( ";
  780. Location location = new CompletionContext(input).getLocation();
  781. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  782. }
  783. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR21() {
  784. String input =
  785. "rule MyRule \n" +
  786. " when \n" +
  787. " Class ( ) and Class ( name ";
  788. Location location = new CompletionContext(input).getLocation();
  789. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR, location.getType());
  790. assertEquals("name", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  791. }
  792. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR22() {
  793. String input =
  794. "rule MyRule \n" +
  795. " when \n" +
  796. " Class ( ) and Class ( name == ";
  797. Location location = new CompletionContext(input).getLocation();
  798. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  799. }
  800. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_NOT() {
  801. String input =
  802. "rule MyRule \n" +
  803. " when \n" +
  804. " exists Class ( ) and not ";
  805. Location location = new CompletionContext(input).getLocation();
  806. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_NOT, location.getType());
  807. }
  808. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_EXISTS() {
  809. String input =
  810. "rule MyRule \n" +
  811. " when \n" +
  812. " exists Class ( ) and exists ";
  813. Location location = new CompletionContext(input).getLocation();
  814. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS, location.getType());
  815. }
  816. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION30() {
  817. String input =
  818. "rule MyRule \n" +
  819. " when \n" +
  820. " Class ( ) and not Class ( ) \n" +
  821. " ";
  822. Location location = new CompletionContext(input).getLocation();
  823. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  824. /** OR */
  825. }
  826. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR21() {
  827. String input =
  828. "rule MyRule \n" +
  829. " when \n" +
  830. " Class ( ) or ";
  831. Location location = new CompletionContext(input).getLocation();
  832. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  833. }
  834. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR22() {
  835. String input =
  836. "rule MyRule \n" +
  837. " when \n" +
  838. " Class ( ) || ";
  839. Location location = new CompletionContext(input).getLocation();
  840. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  841. }
  842. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR23() {
  843. String input =
  844. "rule MyRule \n" +
  845. " when \n" +
  846. " Class () or ";
  847. Location location = new CompletionContext(input).getLocation();
  848. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  849. }
  850. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR24() {
  851. String input =
  852. "rule MyRule \n" +
  853. " when \n" +
  854. " name : Class ( name: property ) or ";
  855. Location location = new CompletionContext(input).getLocation();
  856. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  857. }
  858. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR25() {
  859. String input =
  860. "rule MyRule \n" +
  861. " when \n" +
  862. " Class ( name: property ) \n" +
  863. " or ";
  864. Location location = new CompletionContext(input).getLocation();
  865. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  866. }
  867. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR26() {
  868. String input =
  869. "rule MyRule \n" +
  870. " when \n" +
  871. " Class ( ) or Cl";
  872. Location location = new CompletionContext(input).getLocation();
  873. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  874. }
  875. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR27() {
  876. String input =
  877. "rule MyRule \n" +
  878. " when \n" +
  879. " Class ( ) or name : Cl";
  880. Location location = new CompletionContext(input).getLocation();
  881. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  882. }
  883. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_AND_OR28() {
  884. String input =
  885. "rule MyRule \n" +
  886. " when \n" +
  887. " Class ( ) || name : Cl";
  888. Location location = new CompletionContext(input).getLocation();
  889. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR, location.getType());
  890. }
  891. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION40() {
  892. String input =
  893. "rule MyRule \n" +
  894. " when \n" +
  895. " Class ( ) or Class ( ) \n" +
  896. " ";
  897. Location location = new CompletionContext(input).getLocation();
  898. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION, location.getType());
  899. }
  900. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_START40() {
  901. String input =
  902. "rule MyRule \n" +
  903. " when \n" +
  904. " Class ( ) or Class ( ";
  905. Location location = new CompletionContext(input).getLocation();
  906. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_START, location.getType());
  907. }
  908. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_OPERATOR() {
  909. String input =
  910. "rule MyRule \n" +
  911. " when \n" +
  912. " Class ( ) or Class ( name ";
  913. Location location = new CompletionContext(input).getLocation();
  914. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR, location.getType());
  915. assertEquals("name", location.getProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME));
  916. }
  917. public void testCheckLHSLocationDetermination_INSIDE_CONDITION_ARGUMENT30() {
  918. String input =
  919. "rule MyRule \n" +
  920. " when \n" +
  921. " Class ( ) or Class ( name == ";
  922. Location location = new CompletionContext(input).getLocation();
  923. assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT, location.getType());
  924. }
  925. public void testCheckLHSLocationDetermination_EGIN_OF_CONDITION_NOT() {
  926. String input =
  927. "rule MyRule \n" +
  928. " when \n" +
  929. " exists Class ( ) or not ";
  930. Location location = new CompletionContext(input).getLocation();
  931. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_NOT, location.getType());
  932. }
  933. public void testCheckLHSLocationDetermination_BEGIN_OF_CONDITION_EXISTS40() {
  934. String input =
  935. "rule MyRule \n" +
  936. " when \n" +
  937. " exists Class ( ) or exists ";
  938. Location location = new CompletionContext(input).getLocation();
  939. assertEquals(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS, location.getType());
  940. }
  941. /** EVAL */
  942. public void testCheckLHSLocationDetermination_INSIDE_EVAL1() {
  943. String input =
  944. "rule MyRule \n" +
  945. " when \n" +
  946. " eval ( ";
  947. Location location = new CompletionContext(input).getLocation();
  948. assertEquals(Location.LOCATION_LHS_INSIDE_EVAL, location.getType());
  949. assertEquals("", location.getProperty(Location.LOCATION_EVAL_CONTENT));
  950. }
  951. public void testCheckLHSLocationDetermination_INSIDE_EVAL2() {
  952. String input =
  953. "rule MyRule \n" +
  954. " whe