@Override public ListValue keys() { return VirtualValues.concat( map.keys(), VirtualValues.fromArray( Values.stringArray( updatedKeys ) ) ); }
@Test void shouldHandleZeroListConcatenation() { // Given ListValue inner = EMPTY_LIST; // When ListValue concat = concat( inner ); // Then assertTrue( concat.isEmpty() ); }
if ( lhsIsListValue && rhs instanceof ListValue ) return VirtualValues.concat( (ListValue) lhs, (ListValue) rhs );
@Test void shouldHandleSingleListConcatenation() { // Given ListValue inner = list( stringValue( "foo" ), longValue( 42 ), booleanValue( true ) ); // When ListValue concat = concat( inner ); // Then assertEquals(inner, concat); assertEquals(inner.hashCode(), concat.hashCode()); assertArrayEquals(inner.asArray(), concat.asArray()); }
@Test void shouldHandleMultipleListConcatenation() { // Given ListValue inner1 = list( stringValue( "foo" ), longValue( 42 ), booleanValue( true ) ); ListValue inner2 = list( list(stringValue("bar"), intValue(42)) ); ListValue inner3 = list( map("foo", 1337L, "bar", 42 ), stringValue("baz") ); // When ListValue concat = concat( inner1, inner2, inner3 ); // Then ListValue expected = list( stringValue( "foo" ), longValue( 42 ), booleanValue( true ), list( stringValue( "bar" ), intValue( 42 ) ), map( "foo", 1337L, "bar", 42 ), stringValue( "baz" ) ); assertEquals(expected, concat); assertEquals(expected.hashCode(), concat.hashCode()); assertArrayEquals(expected.asArray(), concat.asArray()); } }
@Override public ListValue keys() { return VirtualValues.concat( map.keys(), VirtualValues.fromArray( Values.stringArray( updatedKeys ) ) ); }
if ( lhsIsListValue && rhs instanceof ListValue ) return VirtualValues.concat( (ListValue) lhs, (ListValue) rhs );