From 433090fa65acf4a1fd668bece5c8172f16d71186 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Mon, 20 May 2019 21:09:38 +0200 Subject: Implement BoolFieldValue.assign --- .../yahoo/document/datatypes/BoolFieldValue.java | 7 +++-- .../document/datatypes/BoolFieldValueTestCase.java | 36 ++++++++++++++++++++++ .../datatypes/NumericFieldValueTestCase.java | 2 +- 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 document/src/test/java/com/yahoo/document/datatypes/BoolFieldValueTestCase.java (limited to 'document') 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 -- cgit v1.2.3