package com.codecademy.eventhub.base; import com.google.common.collect.Maps; import org.junit.Assert; import org.junit.Test; import java.util.Map; public class ByteBufferMapTest { @Test public void testAll() throws Exception { Map<String, String> properties = Maps.newHashMap(); properties.put("a", "b"); properties.put("hello", "world"); properties.put("foo", "bar"); ByteBufferMap byteBufferMap = ByteBufferMap.build(properties); Assert.assertEquals("b", byteBufferMap.get("a")); Assert.assertEquals("bar", byteBufferMap.get("foo")); Assert.assertEquals("world", byteBufferMap.get("hello")); Assert.assertNull(byteBufferMap.get("key_not_exists")); byteBufferMap = new ByteBufferMap(byteBufferMap.toByteBuffer()); Assert.assertEquals("b", byteBufferMap.get("a")); Assert.assertEquals("bar", byteBufferMap.get("foo")); Assert.assertEquals("world", byteBufferMap.get("hello")); Assert.assertNull(byteBufferMap.get("key_not_exists")); MyCallback callback = new MyCallback( new String[] { "a", "foo", "hello" }, new String[] { "b", "bar", "world" }); byteBufferMap.enumerate(callback); callback.verify(3); } private static class MyCallback implements KeyValueCallback { private final String[] expectedKeys; private final String[] expectedValues; private int counter; private MyCallback(String[] expectedKeys, String[] expectedValues) { this.expectedKeys = expectedKeys; this.expectedValues = expectedValues; this.counter = 0; } @Override public void callback(String key, String value) { Assert.assertEquals(expectedKeys[counter], key); Assert.assertEquals(expectedValues[counter], value); counter++; } public void verify(int expectedCount) { Assert.assertEquals(expectedCount, counter); } } }