This is an automated email from the ASF dual-hosted git repository.

rec pushed a commit to branch 
feature/UIMA-5824-Run-JCasUtil-tests-against-equivalent-v3-selects
in repository https://gitbox.apache.org/repos/asf/uima-uimafit.git


The following commit(s) were added to 
refs/heads/feature/UIMA-5824-Run-JCasUtil-tests-against-equivalent-v3-selects 
by this push:
     new 837a3b8  [UIMA-5824] Run JCasUtil tests against equivalent v3 selects
837a3b8 is described below

commit 837a3b83afa1d36e44ba74045b1aaa51f9d6cceb
Author: Richard Eckart de Castilho <[email protected]>
AuthorDate: Wed Jul 25 00:34:11 2018 +0200

    [UIMA-5824] Run JCasUtil tests against equivalent v3 selects
    
    - Fixed some tests by using different SelectFS statements
    - Adjusted some tests which behave slightly different in uimaFIT and 
SelectFS but where the difference is justifiable
---
 .../org/apache/uima/fit/util/JCasUtilv3Test.java   | 91 +++++++++++++---------
 1 file changed, 53 insertions(+), 38 deletions(-)

diff --git 
a/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilv3Test.java 
b/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilv3Test.java
index 9814946..0664f24 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilv3Test.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilv3Test.java
@@ -31,6 +31,8 @@ import static org.apache.uima.fit.util.JCasUtil.selectAt;
 import static org.apache.uima.fit.util.JCasUtil.*;
 import static org.apache.uima.fit.util.JCasUtil.selectSingleAt;
 import static org.apache.uima.fit.util.JCasUtil.toText;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -49,6 +51,7 @@ import java.util.stream.Collectors;
 
 import org.apache.uima.UIMAException;
 import org.apache.uima.cas.CAS;
+import org.apache.uima.cas.CASRuntimeException;
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.text.AnnotationFS;
@@ -343,11 +346,15 @@ public class JCasUtilv3Test extends ComponentTestBase {
     // uimaFIT: JCasUtil.selectByIndex(jCas, Token.class, 0).getCoveredText()
     assertEquals("Rot", jCas.select(Token.class).get(0).getCoveredText());
     // uimaFIT: JCasUtil.selectByIndex(jCas, Token.class, -4).getCoveredText()
-    assertEquals("Rot", 
jCas.select(Token.class).backwards().get(4).getCoveredText());
-    // uimaFIT: JCasUtil.selectByIndex(jCas, Token.class, -5)
-    assertNull(jCas.select(Token.class).backwards().get(5));
-    // uimaFIT: JCasUtil.selectByIndex(jCas, Token.class, 4)
-    assertNull(jCas.select(Token.class).get(4));
+    assertEquals("Rot", 
jCas.select(Token.class).backwards().get(3).getCoveredText());
+    // uimaFIT: assertNull(JCasUtil.selectByIndex(jCas, Token.class, -5));
+    assertThatExceptionOfType(CASRuntimeException.class)
+        .isThrownBy(() -> jCas.select(Token.class).backwards().get(4))
+        .withMessage("CAS does not contain any '" + Token.class.getName() + "' 
instances  shifted by: 4.");
+    // uimaFIT: assertNull(JCasUtil.selectByIndex(jCas, Token.class, 4));
+    assertThatExceptionOfType(CASRuntimeException.class)
+        .isThrownBy(() -> jCas.select(Token.class).backwards().get(4))
+        .withMessage("CAS does not contain any '" + Token.class.getName() + "' 
instances  shifted by: 4.");
   }
 
   @SuppressWarnings({ "rawtypes", "unchecked" })
@@ -455,7 +462,7 @@ public class JCasUtilv3Test extends ComponentTestBase {
     Token lastToken = tokens.get(tokens.size()-1);
     Token preLastToken = tokens.get(tokens.size()-2);
     // uimaFIT selectSingleRelative(jCas, AnalyzedText.class, lastToken, -1);
-    AnalyzedText a = jCas.select(AnalyzedText.class).preceding(lastToken, 
1).get();
+    AnalyzedText a = 
jCas.select(AnalyzedText.class).startAt(lastToken).shifted(-1).get();
     assertEquals(preLastToken.getBegin(), a.getBegin());
     assertEquals(preLastToken.getEnd(), a.getEnd());
   }
@@ -473,13 +480,16 @@ public class JCasUtilv3Test extends ComponentTestBase {
     
     Token firstToken = tokens.get(0);
     Token secondToken = tokens.get(1);
-    // uimaFIT: selectSingleRelative(jCas, AnalyzedText.class, firstToken, 1);
-    AnalyzedText a = 
jCas.select(AnalyzedText.class).startAt(firstToken).get(-1);
+    // uimaFIT: 
+    // AnalyzedText a = selectSingleRelative(jCas, AnalyzedText.class, 
firstToken, 1);
+    AnalyzedText a = 
jCas.select(AnalyzedText.class).startAt(firstToken).get(1);
     assertEquals(secondToken.getBegin(), a.getBegin());
     assertEquals(secondToken.getEnd(), a.getEnd());
   }
   
-  @Test(expected=IllegalArgumentException.class)
+  // Actually, in UIMAv3 this does not fail - and it is ok to not fail
+  @Deprecated()
+  @Test
   public void testSingleRelativeDifferentTypeSamePositionFail() {
     String text = "one two three";
     tokenBuilder.buildTokens(jCas, text);
@@ -491,12 +501,16 @@ public class JCasUtilv3Test extends ComponentTestBase {
     }    
     
     Token firstToken = tokens.get(0);
-    // uimaFIT selectSingleRelative(jCas, AnalyzedText.class, firstToken, 0);
-    jCas.select(AnalyzedText.class).preceding(firstToken, 0).get();
+    // uimaFIT:
+    // assertThatExceptionOfType(IllegalArgumentException.class)
+    //    .isThrownBy(() -> selectSingleRelative(jCas, AnalyzedText.class, 
firstToken, 0));
+    
+    
assertThat(jCas.select(AnalyzedText.class).startAt(firstToken).shifted(0).get())
+        .isSameAs(jCas.select(AnalyzedText.class).get());
   }
 
   @Test
-  public void testSingleRelativeDifferentTypeSamePositionOk() {
+  public void testSingleRelativeSameTypeSamePositionOk() {
     String text = "one two three";
     tokenBuilder.buildTokens(jCas, text);
 
@@ -508,8 +522,7 @@ public class JCasUtilv3Test extends ComponentTestBase {
     
     Token firstToken = tokens.get(0);
     // uimaFIT: selectSingleRelative(jCas, Token.class, firstToken, 0);
-    Token a = jCas.select(Token.class).preceding(firstToken).get();
-    assertEquals(firstToken, a);
+    assertEquals(firstToken, 
jCas.select(Token.class).startAt(firstToken).shifted(0).get());
   }
 
   @Test
@@ -584,7 +597,7 @@ public class JCasUtilv3Test extends ComponentTestBase {
     Token lastToken = tokens.get(tokens.size()-1);
     Token preLastToken = tokens.get(tokens.size()-2);
     // selectPreceding(jCas, AnalyzedText.class, lastToken, 1).get(0);
-    AnalyzedText a = 
jCas.select(AnalyzedText.class).preceding(lastToken).get();
+    AnalyzedText a = 
jCas.select(AnalyzedText.class).preceding(lastToken).limit(1).get();
     assertEquals(preLastToken.getBegin(), a.getBegin());
     assertEquals(preLastToken.getEnd(), a.getEnd());
   }
@@ -657,17 +670,19 @@ public class JCasUtilv3Test extends ComponentTestBase {
     assertEquals(Arrays.asList(a), preceding);
 
     // uimaFIT: selectFollowing(this.jCas, Token.class, sentence, 1);
-    List<Token> following = 
jCas.select(Token.class).following(sentence).limit(1).asList();
-    assertEquals(Arrays.asList("D"), JCasUtil.toText(following));
-    assertEquals(Arrays.asList(d), following);
+    List<Token> following1 = 
jCas.select(Token.class).following(sentence).limit(1).asList();
+    assertEquals(Arrays.asList("D"), JCasUtil.toText(following1));
+    assertEquals(Arrays.asList(d), following1);
+    
     // uimaFIT: selectFollowing(this.jCas, Token.class, sentence, 2);
-    following = jCas.select(Token.class).following(sentence).limit(2).asList();
-    assertEquals(Arrays.asList("D", "E"), JCasUtil.toText(following));
-    assertEquals(Arrays.asList(d, e), following);
+    List<Token> following2 = 
jCas.select(Token.class).following(sentence).limit(2).asList();
+    assertEquals(Arrays.asList("D", "E"), JCasUtil.toText(following2));
+    assertEquals(Arrays.asList(d, e), following2);
+    
     // uimaFIT: selectFollowing(this.jCas, Token.class, sentence, 3);
-    following = jCas.select(Token.class).following(sentence).limit(3).asList();
-    assertEquals(Arrays.asList("D", "E"), JCasUtil.toText(following));
-    assertEquals(Arrays.asList(d, e), following);
+    List<Token> following3 = 
jCas.select(Token.class).following(sentence).limit(3).asList();
+    assertEquals(Arrays.asList("D", "E"), JCasUtil.toText(following3));
+    assertEquals(Arrays.asList(d, e), following3);
   }
 
   @Test
@@ -720,13 +735,12 @@ public class JCasUtilv3Test extends ComponentTestBase {
   public void testSelectSingle() throws UIMAException {
     JCas jcas = CasCreationUtils.createCas(createTypeSystemDescription(), 
null, null).getJCas();
 
-    try {
-      // uimaFIT: selectSingle(jcas, Token.class);
-      jcas.select(Token.class).single();
-      fail("Found annotation that has not yet been created");
-    } catch (IllegalArgumentException e) {
-      // OK
-    }
+    // uimaFIT:
+    // assertThatExceptionOfType(IllegalArgumentException.class)
+    //    .isThrownBy(() -> selectSingle(jcas, Token.class)); 
+    
+    assertThatExceptionOfType(CASRuntimeException.class)
+        .isThrownBy(() -> jcas.select(Token.class).single()); 
 
     new Token(jcas, 0, 1).addToIndexes();
 
@@ -735,13 +749,14 @@ public class JCasUtilv3Test extends ComponentTestBase {
 
     new Token(jcas, 1, 2).addToIndexes();
 
-    try {
-      // uimaFIT: selectSingle(jcas, Token.class);
-      jcas.select(Token.class).single();
-      fail("selectSingle must fail if there is more than one annotation of the 
type");
-    } catch (IllegalArgumentException e) {
-      // OK
-    }
+    // uimaFIT:
+    // assertThatExceptionOfType(IllegalArgumentException.class)
+    //    .isThrownBy(() -> selectSingle(jcas, Token.class))
+    //    .as("selectSingle must fail if there is more than one annotation of 
the type"); 
+
+    assertThatExceptionOfType(CASRuntimeException.class)
+      .isThrownBy(() -> jcas.select(Token.class).single())
+      .as("selectSingle must fail if there is more than one annotation of the 
type"); 
   }
 
   @Test

Reply via email to