You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2019/02/19 11:16:55 UTC

svn commit: r1853872 - in /jackrabbit/oak/trunk/oak-core: pom.xml src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java

Author: reschke
Date: Tue Feb 19 11:16:55 2019
New Revision: 1853872

URL: http://svn.apache.org/viewvc?rev=1853872&view=rev
Log:
OAK-8035: a message is logged when similar costs come from the same index type

test cleanup, use LogCustomizer, remove assertj dependency

Modified:
    jackrabbit/oak/trunk/oak-core/pom.xml
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java

Modified: jackrabbit/oak/trunk/oak-core/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/pom.xml?rev=1853872&r1=1853871&r2=1853872&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-core/pom.xml Tue Feb 19 11:16:55 2019
@@ -281,11 +281,5 @@
       <version>1.1.1</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.assertj</groupId>
-      <artifactId>assertj-core</artifactId>
-      <version>3.6.2</version>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 </project>

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java?rev=1853872&r1=1853871&r2=1853872&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java Tue Feb 19 11:16:55 2019
@@ -23,6 +23,7 @@ import org.apache.jackrabbit.JcrConstant
 import org.apache.jackrabbit.oak.InitialContent;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.ContentRepository;
+import org.apache.jackrabbit.oak.commons.junit.LogCustomizer;
 import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider;
 import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexPlan;
 import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexProvider;
@@ -39,19 +40,14 @@ import org.apache.jackrabbit.oak.spi.que
 import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.util.NodeUtil;
-import org.assertj.core.api.Assertions;
-import org.assertj.core.groups.Tuple;
+import org.hamcrest.core.IsCollectionContaining;
 import org.jetbrains.annotations.NotNull;
+import org.junit.Assert;
 import org.junit.Test;
-import org.slf4j.LoggerFactory;
+import org.slf4j.event.Level;
 
 import com.google.common.collect.ImmutableList;
 
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
-import ch.qos.logback.classic.spi.ILoggingEvent;
-import ch.qos.logback.core.read.ListAppender;
-
 /**
  * Tests for cases where two or more indices return a similar cost estimation for the same query
  */
@@ -59,6 +55,7 @@ public class QuerySimilarCostTest extend
 
     private TestIndexProvider testIndexProvider = new TestIndexProvider();
     private final SQL2Parser p = SQL2ParserTest.createTestSQL2Parser();
+
     @Override
     protected ContentRepository createRepository() {
         return new Oak()
@@ -70,21 +67,17 @@ public class QuerySimilarCostTest extend
                 .createContentRepository();
     }
 
-
     /*
      * Given 2 index plan with similar cost we expect a log at debug level to
      * intimate user to either modify either of the indices or the query
      */
     @Test
-    public void testSimilarCostIndices() throws Exception{
-        Logger queryImplLogger = (Logger) LoggerFactory.getLogger(QueryImpl.class);
-        queryImplLogger.setLevel(ch.qos.logback.classic.Level.DEBUG);
-
-        ListAppender<ILoggingEvent> listAppender = new ListAppender<>();
-        listAppender.start();
+    public void testSimilarCostIndices() throws Exception {
+        LogCustomizer customLogs = LogCustomizer.forLogger(QueryImpl.class.getName()).enable(Level.DEBUG).create();
 
         try {
-            queryImplLogger.addAppender(listAppender);
+            customLogs.starting();
+
             NodeUtil node = new NodeUtil(root.getTree("/"));
             String uuid = UUID.randomUUID().toString();
             node.setString(JcrConstants.JCR_UUID, uuid);
@@ -92,22 +85,20 @@ public class QuerySimilarCostTest extend
 
             executeQuery("SELECT * FROM [nt:base] WHERE [jcr:uuid] is not null", SQL2, true, false);
 
-            String expectedLogMessage = String.format("selected index %s " +
-                    "with plan testIndexPlan1 and %s with plan testIndexPlan2 have similar costs 11.0 and 11.0 " +
-                    "for query Filter(query=SELECT * FROM [nt:base] WHERE [jcr:uuid] is not null, path=*, property=[jcr:uuid=[is not null]]) - check query explanation / index definitions",testIndexProvider.index,testIndexProvider.index);
-
-            listAppender.stop();
-            Assertions.assertThat(listAppender.list)
-                    .extracting(ILoggingEvent::getMessage, ILoggingEvent::getLevel)
-                    .contains(Tuple.tuple(expectedLogMessage, Level.DEBUG));
-        }
-        finally {
-            listAppender.stop();
+            String expectedLogMessage = String.format("selected index %s "
+                    + "with plan testIndexPlan1 and %s with plan testIndexPlan2 have similar costs 11.0 and 11.0 "
+                    + "for query Filter(query=SELECT * FROM [nt:base] WHERE [jcr:uuid] is not null, path=*, property=[jcr:uuid=[is not null]]) - check query explanation / index definitions",
+                    testIndexProvider.index, testIndexProvider.index);
+
+            Assert.assertThat(customLogs.getLogs(), IsCollectionContaining.hasItems(expectedLogMessage));
+        } finally {
+            customLogs.finished();
         }
     }
 
     private static class TestIndexProvider implements QueryIndexProvider {
         TestIndex index = new TestIndex();
+
         @Override
         public @NotNull List<? extends QueryIndex> getQueryIndexes(NodeState nodeState) {
             return ImmutableList.<QueryIndex>of(index);
@@ -115,7 +106,7 @@ public class QuerySimilarCostTest extend
     }
 
     private static class TestIndex implements QueryIndex,QueryIndex.AdvancedQueryIndex {
-        int invocationCount = 0;
+
         @Override
         public double getMinimumCost() {
             return PropertyIndexPlan.COST_OVERHEAD + 0.1;
@@ -123,7 +114,6 @@ public class QuerySimilarCostTest extend
 
         @Override
         public double getCost(Filter filter, NodeState rootState) {
-            invocationCount++;
             return Double.POSITIVE_INFINITY;
         }
 
@@ -142,7 +132,6 @@ public class QuerySimilarCostTest extend
             return "test-index";
         }
 
-
         @Override
         public List<QueryIndex.IndexPlan> getPlans(Filter filter, List<QueryIndex.OrderEntry> sortOrder, NodeState rootState) {
             IndexPlan.Builder b = new IndexPlan.Builder();
@@ -167,5 +156,4 @@ public class QuerySimilarCostTest extend
             return null;
         }
     }
-
 }