summaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/test/java/com/yahoo')
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PartialFillTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/result/DefaultErrorHitTestCase.java39
-rw-r--r--container-search/src/test/java/com/yahoo/search/result/test/HitGroupTestCase.java76
4 files changed, 91 insertions, 28 deletions
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PartialFillTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PartialFillTestCase.java
index 7fda1d82fcc..867a8d7df83 100644
--- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PartialFillTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PartialFillTestCase.java
@@ -44,7 +44,7 @@ public class PartialFillTestCase extends junit.framework.TestCase {
}
protected void doPartialFill(Result result, String summaryClass) {
if (result.hits().getErrorHit() == null) {
- result.hits().setError(ErrorMessage.createUnspecifiedError("error"));
+ result.hits().addError(ErrorMessage.createUnspecifiedError("error"));
}
}
}
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java
index b741159ab9d..f8a9b06888d 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java
@@ -650,7 +650,7 @@ public class GroupingExecutorTestCase {
return ret;
}
if (passnum == failOnPassN) {
- ret.hits().setError(ErrorMessage.createTimeout("timeout"));
+ ret.hits().addError(ErrorMessage.createTimeout("timeout"));
}
passnum++;
return ret;
diff --git a/container-search/src/test/java/com/yahoo/search/result/DefaultErrorHitTestCase.java b/container-search/src/test/java/com/yahoo/search/result/DefaultErrorHitTestCase.java
index 840f5cbdf04..75b9a5264dc 100644
--- a/container-search/src/test/java/com/yahoo/search/result/DefaultErrorHitTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/result/DefaultErrorHitTestCase.java
@@ -10,8 +10,7 @@ import org.junit.Before;
import org.junit.Test;
/**
- * @author steinar
- * @author bratseth
+ * @author Steinar Knutsen
*/
public class DefaultErrorHitTestCase {
@@ -23,12 +22,8 @@ public class DefaultErrorHitTestCase {
de = new DefaultErrorHit(SOURCE, ErrorMessage.createUnspecifiedError("DefaultErrorHitTestCase"));
}
- @After
- public void tearDown() throws Exception {
- }
-
@Test
- public final void testSetSourceTakeTwo() {
+ public void testSetSourceTakeTwo() {
assertEquals(SOURCE, de.getSource());
de.setSource(null);
assertNull(de.getSource());
@@ -41,19 +36,19 @@ public class DefaultErrorHitTestCase {
}
@Test
- public final void testToString() {
+ public void testToString() {
assertEquals("Error: Source 'nalle': 5: Unspecified error: DefaultErrorHitTestCase", de.toString());
}
@Test
- public final void testSetMainError() {
+ public void testSetMainError() {
ErrorMessage e = ErrorMessage.createBackendCommunicationError("abc");
assertNull(e.getSource());
de.addError(e);
assertEquals(SOURCE, e.getSource());
boolean caught = false;
try {
- new DefaultErrorHit(SOURCE, null);
+ new DefaultErrorHit(SOURCE, (ErrorMessage)null);
} catch (NullPointerException ex) {
caught = true;
}
@@ -69,47 +64,41 @@ public class DefaultErrorHitTestCase {
}
@Test
- public final void testAddError() {
- ErrorMessage e = ErrorMessage
- .createBackendCommunicationError("ljkhlkjh");
+ public void testAddError() {
+ ErrorMessage e = ErrorMessage.createBackendCommunicationError("ljkhlkjh");
assertNull(e.getSource());
de.addError(e);
assertEquals(SOURCE, e.getSource());
e = ErrorMessage.createBadRequest("kdjfhsdkfhj");
de.addError(e);
int i = 0;
- for (Iterator<ErrorMessage> errors = de.errorIterator(); errors
- .hasNext(); errors.next()) {
+ for (Iterator<ErrorMessage> errors = de.errorIterator(); errors.hasNext(); errors.next()) {
++i;
}
assertEquals(3, i);
}
@Test
- public final void testAddErrors() {
- DefaultErrorHit other = new DefaultErrorHit("abc",
- ErrorMessage.createBadRequest("sdasd"));
+ public void testAddErrors() {
+ DefaultErrorHit other = new DefaultErrorHit("abc", ErrorMessage.createBadRequest("sdasd"));
de.addErrors(other);
int i = 0;
- for (Iterator<ErrorMessage> errors = de.errorIterator(); errors
- .hasNext(); errors.next()) {
+ for (Iterator<ErrorMessage> errors = de.errorIterator(); errors.hasNext(); errors.next()) {
++i;
}
assertEquals(2, i);
- other = new DefaultErrorHit("abd",
- ErrorMessage.createEmptyDocsums("uiyoiuy"));
+ other = new DefaultErrorHit("abd", ErrorMessage.createEmptyDocsums("uiyoiuy"));
other.addError(ErrorMessage.createNoAnswerWhenPingingNode("xzvczx"));
de.addErrors(other);
i = 0;
- for (Iterator<ErrorMessage> errors = de.errorIterator(); errors
- .hasNext(); errors.next()) {
+ for (Iterator<ErrorMessage> errors = de.errorIterator(); errors.hasNext(); errors.next()) {
++i;
}
assertEquals(4, i);
}
@Test
- public final void testHasOnlyErrorCode() {
+ public void testHasOnlyErrorCode() {
assertTrue(de.hasOnlyErrorCode(com.yahoo.container.protect.Error.UNSPECIFIED.code));
assertFalse(de.hasOnlyErrorCode(com.yahoo.container.protect.Error.BACKEND_COMMUNICATION_ERROR.code));
diff --git a/container-search/src/test/java/com/yahoo/search/result/test/HitGroupTestCase.java b/container-search/src/test/java/com/yahoo/search/result/test/HitGroupTestCase.java
index 9ded5f7b768..b8f033444c8 100644
--- a/container-search/src/test/java/com/yahoo/search/result/test/HitGroupTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/result/test/HitGroupTestCase.java
@@ -1,16 +1,30 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.search.result.test;
+import com.yahoo.search.Query;
+import com.yahoo.search.result.DefaultErrorHit;
+import com.yahoo.search.result.ErrorHit;
+import com.yahoo.search.result.ErrorMessage;
import com.yahoo.search.result.Hit;
import com.yahoo.search.result.HitGroup;
+import org.junit.Test;
import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
/**
* @author bratseth
*/
-public class HitGroupTestCase extends junit.framework.TestCase {
+public class HitGroupTestCase {
+ @Test
public void testStringStripping() {
assertEquals("avabarne", Hit.stripCharacter('j', "javabjarne"));
assertEquals("", Hit.stripCharacter('j', ""));
@@ -19,7 +33,59 @@ public class HitGroupTestCase extends junit.framework.TestCase {
assertEquals("foo", Hit.stripCharacter('j', "fooj"));
assertEquals("", Hit.stripCharacter('j', "jjjjj"));
}
+
+ @Test
+ public void testErrorsConsistencyUsingErrorOperations() {
+ HitGroup hits = new HitGroup();
+
+ Query query = new Query();
+ query.errors().add(ErrorMessage.createIllegalQuery("test1"));
+ query.errors().add(ErrorMessage.createTimeout("test2"));
+ hits.setQuery(query);
+
+ hits.addError(ErrorMessage.createForbidden("test3"));
+ hits.addError(ErrorMessage.createUnspecifiedError("test4"));
+
+ assertEquals(4, hits.getErrorHit().errors().size());
+ assertEquals(0, query.errors().size());
+ assertEquals(Optional.of(hits.getErrorHit()), errorHitIn(hits.asList()));
+
+ DefaultErrorHit removedErrors = hits.removeErrorHit();
+ assertNotNull(removedErrors);
+ assertEquals(4, removedErrors.errors().size());
+ assertNull(hits.get(removedErrors.getId().toString()));
+ assertFalse(errorHitIn(hits.asList()).isPresent());
+
+ assertNull(hits.removeErrorHit());
+ }
+
+ @Test
+ public void testErrorsConsistencyUsingHitOperations() {
+ HitGroup hits = new HitGroup();
+
+ Query query = new Query();
+ query.errors().add(ErrorMessage.createIllegalQuery("test1"));
+ query.errors().add(ErrorMessage.createTimeout("test2"));
+ hits.setQuery(query);
+
+ DefaultErrorHit errors = new DefaultErrorHit("source", ErrorMessage.createForbidden("test3"));
+ errors.addError(ErrorMessage.createUnspecifiedError("test4"));
+ hits.add(errors);
+
+ assertEquals(4, hits.getErrorHit().errors().size());
+ assertEquals(0, query.errors().size());
+ assertEquals(Optional.of(hits.getErrorHit()), errorHitIn(hits.asList()));
+
+ DefaultErrorHit removedErrors = (DefaultErrorHit)hits.remove(errors.getId());
+ assertNotNull(removedErrors);
+ assertEquals(4, removedErrors.errors().size());
+ assertNull(hits.get(removedErrors.getId().toString()));
+ assertFalse(errorHitIn(hits.asList()).isPresent());
+
+ assertNull(hits.remove(errors.getId()));
+ }
+ @Test
public void testRecursiveGet() {
// Level 1
HitGroup g1=new HitGroup();
@@ -106,6 +172,7 @@ public class HitGroupTestCase extends junit.framework.TestCase {
assertNull(g1.get("3",2));
}
+ @Test
public void testThatHitGroupIsUnFillable() {
HitGroup hg = new HitGroup("test");
{
@@ -127,6 +194,7 @@ public class HitGroupTestCase extends junit.framework.TestCase {
assertNull(hg.getFilled());
}
+ @Test
public void testThatHitGroupIsFillable() {
HitGroup hg = new HitGroup("test");
{
@@ -150,6 +218,7 @@ public class HitGroupTestCase extends junit.framework.TestCase {
assertTrue(hg.getFilled().isEmpty());
}
+ @Test
public void testThatHitGroupIsFillableAfterFillableChangeunderTheHood() {
HitGroup hg = new HitGroup("test");
{
@@ -185,5 +254,10 @@ public class HitGroupTestCase extends junit.framework.TestCase {
assertFalse(hg.isFilled("anyclass"));
assertTrue(hg.getFilled().isEmpty());
}
+
+ /** Returns the (first) error hit in the given list, or empty if none */
+ private Optional<ErrorHit> errorHitIn(List<Hit> hits) {
+ return hits.stream().filter(h -> h instanceof ErrorHit).map(ErrorHit.class::cast).findFirst();
+ }
}