mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
Dirty fix of issue with CharSequence equivalence, for correct ChronicleMap.equals() and hashCode() impls
This commit is contained in:
@@ -1309,7 +1309,6 @@ public class CHMUseCasesTest {
|
||||
valueA.limit(valueA.capacity());
|
||||
}
|
||||
|
||||
//@Ignore("HCOLL-268 JSON serialisation issue")
|
||||
@Test
|
||||
public void testByteBufferDirectByteBufferMap()
|
||||
throws ExecutionException, InterruptedException, IOException {
|
||||
@@ -1340,25 +1339,19 @@ public class CHMUseCasesTest {
|
||||
map.put(key1, value1);
|
||||
mapChecks();
|
||||
final SerializableFunction<ByteBuffer, ByteBuffer> function =
|
||||
new SerializableFunction<ByteBuffer, ByteBuffer>() {
|
||||
@Override
|
||||
public ByteBuffer apply(ByteBuffer s) {
|
||||
ByteBuffer slice = s.slice();
|
||||
slice.limit(2);
|
||||
return slice;
|
||||
}
|
||||
s -> {
|
||||
ByteBuffer slice = s.slice();
|
||||
slice.limit(2);
|
||||
return slice;
|
||||
};
|
||||
assertBBEquals(ByteBuffer.wrap(new byte[]{11, 11}), map.getMapped(key1, function));
|
||||
assertEquals(null, map.getMapped(key2, function));
|
||||
mapChecks();
|
||||
assertBBEquals(ByteBuffer.wrap(new byte[]{12, 10}),
|
||||
map.putMapped(key1, new UnaryOperator<ByteBuffer>() {
|
||||
@Override
|
||||
public ByteBuffer update(ByteBuffer s) {
|
||||
s.put(0, (byte) (s.get(0) + 1));
|
||||
s.put(1, (byte) (s.get(1) - 1));
|
||||
return function.apply(s);
|
||||
}
|
||||
map.putMapped(key1, s -> {
|
||||
s.put(0, (byte) (s.get(0) + 1));
|
||||
s.put(1, (byte) (s.get(1) - 1));
|
||||
return function.apply(s);
|
||||
}));
|
||||
|
||||
assertBBEquals(ByteBuffer.wrap(new byte[]{12, 10}), map.get(key1));
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright 2014 Higher Frequency Trading http://www.higherfrequencytrading.com
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.openhft.chronicle.map;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class ChronicleMapEqualsTest {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
ChronicleMap<CharSequence, CharSequence> map =
|
||||
ChronicleMapBuilder
|
||||
.of(CharSequence.class, CharSequence.class)
|
||||
.entries(100)
|
||||
.create();
|
||||
|
||||
HashMap<CharSequence, CharSequence> refMap = new HashMap<>();
|
||||
refMap.put("a", "b");
|
||||
map.putAll(refMap);
|
||||
assertTrue(map.equals(refMap));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user