testing off heap interfaces with String[]

Conflicts:
	src/test/java/net/openhft/chronicle/map/CHMUseCasesTest.java
This commit is contained in:
Rob Austin
2015-07-25 18:14:13 +03:00
committed by leventov
parent f4e13c78e9
commit e2020e3ff2
2 changed files with 67 additions and 3 deletions
@@ -103,7 +103,18 @@ public class DataValueConverter implements Converter {
final String fieldName = "_" + fileModel.name();
Field field = o.getClass().getDeclaredField(fieldName);
Field field;
try {
field = o.getClass().getDeclaredField(fieldName);
} catch (NoSuchFieldException e1) {
throw new ConversionException("JSON conversion of Classes containing " +
"arrays is not " +
"currently supported" +
", the following field could not be found=" + fileModel.name(), e1);
}
field.setAccessible(true);
final Object[] o1 = (Object[]) field.get(o);
@@ -122,8 +133,8 @@ public class DataValueConverter implements Converter {
}
writer.endNode();
} catch (NoSuchFieldException | IllegalAccessException e1) {
throw new ConversionException("", e1);
} catch (IllegalAccessException e) {
throw new ConversionException("", e);
}
continue;
@@ -354,6 +354,56 @@ public class CHMUseCasesTest {
}
interface I1 {
String getStrAt( @MaxSize(10) int i);
void setStrAt(@MaxSize(10) int i, @MaxSize(10) String str);
}
@Test
public void testArrayOfString() throws ExecutionException, InterruptedException,
IOException {
ChronicleMapBuilder<CharSequence, I1> builder = ChronicleMapBuilder
.of(CharSequence.class, I1.class)
.entries(10);
try (ChronicleMap<CharSequence, I1> map = newInstance(builder)) {
{
final I1 i1 = map.newValueInstance();
i1.setStrAt(1, "Hello");
i1.setStrAt(2, "World");
map.put("Key1", i1);
}
{
final I1 i1 = map.newValueInstance();
i1.setStrAt(1, "Hello2");
i1.setStrAt(2, "World2");
map.put("Key2", i1);
}
{
final I1 key = map.get("Key1");
assertEquals("Hello", key.getStrAt(1));
assertEquals("World", key.getStrAt(2));
}
{
final I1 key = map.get("Key2");
assertEquals("Hello2", key.getStrAt(1));
assertEquals("World2", key.getStrAt(2));
}
// todo not currently supported for arrays
// mapChecks();
}
}
@Test
public void testCharArrayValue() throws ExecutionException, InterruptedException, IOException {
@@ -469,6 +519,9 @@ public class CHMUseCasesTest {
}
@Test
public void testKeyValueSizeBySample() throws ExecutionException, InterruptedException,
IOException {