ListValue extends PropertyValue { @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof ListValue)) { return false; } ListValue dataNode = (ListValue) o; return Objects.equals(getKey(), dataNode.getKey()) && Objects.equals(getValue(), dataNode.getValue()) && Objects.equals(list, dataNode.list) && Objects.equals(getMeta(), dataNode.getMeta()); } ListValue(String key); @Override ValueType getValueType(); int getIndex(PropertyValue member); @Override int getSize(); @Override Iterator<PropertyValue> iterator(); ListValue addPropertyValue(PropertyValue value); ListValue addValue(String value); ListValue addValues(String... values); ObjectValue addObject(); ListValue addList(); String getValue(int index); PropertyValue getPropertyValue(int n); List<ObjectValue> getObjects(String name); List<ListValue> getLists(String name); List<ListValue> getLists(); List<PropertyValue> getPropertyValues(String name); @Override ObjectValue toObjectValue(); @Override ListValue toListValue(); String getValue(); @Override PropertyValue setValue(String value); @Override ListValue mutable(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static ListValue from(Collection<PropertyValue> values);  }
@Test public void equals() { ListValue lv1 = PropertyValue.createList("foo"); lv1.addList(); ListValue lv2 = PropertyValue.createList("foo"); lv2.addList(); assertThat(lv1.equals(lv2)).isTrue(); }