summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-05-20 21:09:38 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-05-20 21:09:38 +0200
commit433090fa65acf4a1fd668bece5c8172f16d71186 (patch)
treeff647fbb7adfb9ecff6d1528b73af3612ffda7f9 /document
parent3b89b1eac05a551ae814c57b4d9d4686b4068446 (diff)
Implement BoolFieldValue.assign
Diffstat (limited to 'document')
-rw-r--r--document/src/main/java/com/yahoo/document/datatypes/BoolFieldValue.java7
-rw-r--r--document/src/test/java/com/yahoo/document/datatypes/BoolFieldValueTestCase.java36
-rw-r--r--document/src/test/java/com/yahoo/document/datatypes/NumericFieldValueTestCase.java2
3 files changed, 42 insertions, 3 deletions
diff --git a/document/src/main/java/com/yahoo/document/datatypes/BoolFieldValue.java b/document/src/main/java/com/yahoo/document/datatypes/BoolFieldValue.java
index 189c275809a..0627a8dc73c 100644
--- a/document/src/main/java/com/yahoo/document/datatypes/BoolFieldValue.java
+++ b/document/src/main/java/com/yahoo/document/datatypes/BoolFieldValue.java
@@ -52,6 +52,10 @@ public class BoolFieldValue extends FieldValue {
if ( ! checkAssign(o)) return;
if (o instanceof String || o instanceof StringFieldValue) {
value = Boolean.parseBoolean(o.toString());
+ } else if (o instanceof Boolean) {
+ value = (Boolean) o;
+ } else if (o instanceof BoolFieldValue) {
+ value = ((BoolFieldValue) o).value;
} else {
throw new IllegalArgumentException("Class " + o.getClass() + " not applicable to an " + this.getClass() + " instance.");
}
@@ -94,8 +98,7 @@ public class BoolFieldValue extends FieldValue {
if ( ! super.equals(o)) return false;
BoolFieldValue that = (BoolFieldValue) o;
- if (value != that.value) return false;
- return true;
+ return (value == that.value);
}
@Override
diff --git a/document/src/test/java/com/yahoo/document/datatypes/BoolFieldValueTestCase.java b/document/src/test/java/com/yahoo/document/datatypes/BoolFieldValueTestCase.java
new file mode 100644
index 00000000000..0afce499cb1
--- /dev/null
+++ b/document/src/test/java/com/yahoo/document/datatypes/BoolFieldValueTestCase.java
@@ -0,0 +1,36 @@
+package com.yahoo.document.datatypes;
+
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author baldersheim
+ */
+public class BoolFieldValueTestCase {
+ @Test
+ public void requireCorrectConstruction() {
+ assertEquals(false, new BoolFieldValue().getBoolean());
+ assertEquals(true, new BoolFieldValue(true).getBoolean());
+ assertEquals(false, new BoolFieldValue(false).getBoolean());
+ assertEquals(true, new BoolFieldValue("true").getBoolean());
+ assertEquals(false, new BoolFieldValue("false").getBoolean());
+ }
+
+ private void verifyAssign(boolean expected, Object o) {
+ BoolFieldValue v = new BoolFieldValue(!expected);
+ v.assign(o);
+ assertEquals(expected, v.getBoolean());
+ }
+ @Test
+ public void requireCorrectAssign() {
+ verifyAssign(true, "true");
+ verifyAssign(false, "false");
+ verifyAssign(false, "");
+ verifyAssign(true, new StringFieldValue("true"));
+ verifyAssign(false, new StringFieldValue("false"));
+ verifyAssign(true, true);
+ verifyAssign(false, false);
+ verifyAssign(true, new BoolFieldValue(true));
+ verifyAssign(false, new BoolFieldValue(false));
+ }
+}
diff --git a/document/src/test/java/com/yahoo/document/datatypes/NumericFieldValueTestCase.java b/document/src/test/java/com/yahoo/document/datatypes/NumericFieldValueTestCase.java
index be6fff2cfdd..e5c5a0d0d02 100644
--- a/document/src/test/java/com/yahoo/document/datatypes/NumericFieldValueTestCase.java
+++ b/document/src/test/java/com/yahoo/document/datatypes/NumericFieldValueTestCase.java
@@ -2,7 +2,7 @@
package com.yahoo.document.datatypes;
import org.junit.Test;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
/**
* @author baldersheim