Skip to content

Commit f23dcac

Browse files
committed
extend tests for data object map (this is to catch bug with getBoolean method)
1 parent e15d6e1 commit f23dcac

1 file changed

Lines changed: 347 additions & 0 deletions

File tree

src/test/java/picoded/dstack/struct/simple/StructSimple_DataObjectMap_test.java

Lines changed: 347 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1087,4 +1087,351 @@ public void testMaintainanceCalls() {
10871087
mtObj.maintenance();
10881088
indexBasedTestSetup();
10891089
}
1090+
1091+
// Ported Exhaustive Primitive & Fallback Tests
1092+
//-----------------------------------------------------
1093+
1094+
@Test
1095+
public void testCreateAndGetByOid() throws Exception {
1096+
DataObject entry = mtObj.newEntry();
1097+
assertNotNull(entry);
1098+
String oid = entry.getString("_oid");
1099+
assertNotNull(oid);
1100+
1101+
entry.saveDelta();
1102+
1103+
DataObject retrieved = mtObj.get(oid);
1104+
assertNotNull(retrieved);
1105+
assertEquals(oid, retrieved.getString("_oid"));
1106+
}
1107+
1108+
@Test
1109+
public void testStringProp() throws Exception {
1110+
DataObject entry = mtObj.newEntry();
1111+
String oid = entry.getString("_oid");
1112+
entry.put("myString", "hello-world");
1113+
entry.saveDelta();
1114+
1115+
DataObject retrieved = mtObj.get(oid);
1116+
assertNotNull(retrieved);
1117+
assertEquals("hello-world", retrieved.getString("myString"));
1118+
}
1119+
1120+
@Test
1121+
public void testGetStringFallback() throws Exception {
1122+
DataObject entry = mtObj.newEntry();
1123+
String oid = entry.getString("_oid");
1124+
entry.saveDelta();
1125+
1126+
DataObject retrieved = mtObj.get(oid);
1127+
assertNotNull(retrieved);
1128+
assertEquals("default-string", retrieved.getString("nonExistentProp", "default-string"));
1129+
}
1130+
1131+
@Test
1132+
public void testIntProp() throws Exception {
1133+
DataObject entry = mtObj.newEntry();
1134+
String oid = entry.getString("_oid");
1135+
entry.put("myInt", 123);
1136+
entry.saveDelta();
1137+
1138+
DataObject retrieved = mtObj.get(oid);
1139+
assertNotNull(retrieved);
1140+
assertEquals(123, retrieved.getInt("myInt"));
1141+
}
1142+
1143+
@Test
1144+
public void testGetIntFallback() throws Exception {
1145+
DataObject entry = mtObj.newEntry();
1146+
String oid = entry.getString("_oid");
1147+
entry.saveDelta();
1148+
1149+
DataObject retrieved = mtObj.get(oid);
1150+
assertNotNull(retrieved);
1151+
assertEquals(999, retrieved.getInt("nonExistentProp", 999));
1152+
}
1153+
1154+
@Test
1155+
public void testBooleanProp() throws Exception {
1156+
DataObject entry = mtObj.newEntry();
1157+
String oid = entry.getString("_oid");
1158+
entry.put("myBool", true);
1159+
entry.saveDelta();
1160+
1161+
DataObject retrieved = mtObj.get(oid);
1162+
assertNotNull(retrieved);
1163+
assertTrue(retrieved.getBoolean("myBool"));
1164+
}
1165+
1166+
@Test
1167+
public void testGetBooleanFallbackFalse() throws Exception {
1168+
DataObject entry = mtObj.newEntry();
1169+
String oid = entry.getString("_oid");
1170+
entry.saveDelta();
1171+
1172+
DataObject retrieved = mtObj.get(oid);
1173+
assertNotNull(retrieved);
1174+
assertFalse(retrieved.getBoolean("nonExistentProp", false));
1175+
}
1176+
1177+
@Test
1178+
public void testGetBooleanFallbackTrue() throws Exception {
1179+
DataObject entry = mtObj.newEntry();
1180+
String oid = entry.getString("_oid");
1181+
entry.saveDelta();
1182+
1183+
DataObject retrieved = mtObj.get(oid);
1184+
assertNotNull(retrieved);
1185+
assertTrue(retrieved.getBoolean("nonExistentProp", true));
1186+
}
1187+
1188+
@Test
1189+
public void testIntOneAsBooleanTrue() throws Exception {
1190+
DataObject entry = mtObj.newEntry();
1191+
String oid = entry.getString("_oid");
1192+
entry.put("myIntOne", 1);
1193+
entry.saveDelta();
1194+
1195+
DataObject retrieved = mtObj.get(oid);
1196+
assertNotNull(retrieved);
1197+
assertTrue(retrieved.getBoolean("myIntOne", false));
1198+
}
1199+
1200+
@Test
1201+
public void testIntZeroAsBooleanFalse() throws Exception {
1202+
DataObject entry = mtObj.newEntry();
1203+
String oid = entry.getString("_oid");
1204+
entry.put("myIntZero", 0);
1205+
entry.saveDelta();
1206+
1207+
DataObject retrieved = mtObj.get(oid);
1208+
assertNotNull(retrieved);
1209+
assertFalse(retrieved.getBoolean("myIntZero", true));
1210+
}
1211+
1212+
@Test
1213+
public void testNumberProp() throws Exception {
1214+
DataObject entry = mtObj.newEntry();
1215+
String oid = entry.getString("_oid");
1216+
entry.put("myNum", 42.56);
1217+
entry.saveDelta();
1218+
1219+
DataObject retrieved = mtObj.get(oid);
1220+
assertNotNull(retrieved);
1221+
assertEquals(42.56, retrieved.getNumber("myNum").doubleValue(), 0.001);
1222+
}
1223+
1224+
@Test
1225+
public void testGetNumberFallback() throws Exception {
1226+
DataObject entry = mtObj.newEntry();
1227+
String oid = entry.getString("_oid");
1228+
entry.saveDelta();
1229+
1230+
DataObject retrieved = mtObj.get(oid);
1231+
assertNotNull(retrieved);
1232+
assertEquals(99.9, retrieved.getNumber("nonExistent", 99.9).doubleValue(), 0.001);
1233+
}
1234+
1235+
@Test
1236+
public void testLongProp() throws Exception {
1237+
DataObject entry = mtObj.newEntry();
1238+
String oid = entry.getString("_oid");
1239+
entry.put("myLong", 9876543210L);
1240+
entry.saveDelta();
1241+
1242+
DataObject retrieved = mtObj.get(oid);
1243+
assertNotNull(retrieved);
1244+
assertEquals(9876543210L, retrieved.getLong("myLong"));
1245+
}
1246+
1247+
@Test
1248+
public void testGetLongFallback() throws Exception {
1249+
DataObject entry = mtObj.newEntry();
1250+
String oid = entry.getString("_oid");
1251+
entry.saveDelta();
1252+
1253+
DataObject retrieved = mtObj.get(oid);
1254+
assertNotNull(retrieved);
1255+
assertEquals(12345L, retrieved.getLong("nonExistent", 12345L));
1256+
}
1257+
1258+
@Test
1259+
public void testFloatProp() throws Exception {
1260+
DataObject entry = mtObj.newEntry();
1261+
String oid = entry.getString("_oid");
1262+
entry.put("myFloat", 5.67f);
1263+
entry.saveDelta();
1264+
1265+
DataObject retrieved = mtObj.get(oid);
1266+
assertNotNull(retrieved);
1267+
assertEquals(5.67f, retrieved.getFloat("myFloat"), 0.01f);
1268+
}
1269+
1270+
@Test
1271+
public void testGetFloatFallback() throws Exception {
1272+
DataObject entry = mtObj.newEntry();
1273+
String oid = entry.getString("_oid");
1274+
entry.saveDelta();
1275+
1276+
DataObject retrieved = mtObj.get(oid);
1277+
assertNotNull(retrieved);
1278+
assertEquals(1.23f, retrieved.getFloat("nonExistent", 1.23f), 0.01f);
1279+
}
1280+
1281+
@Test
1282+
public void testDoubleProp() throws Exception {
1283+
DataObject entry = mtObj.newEntry();
1284+
String oid = entry.getString("_oid");
1285+
entry.put("myDouble", 3.14159);
1286+
entry.saveDelta();
1287+
1288+
DataObject retrieved = mtObj.get(oid);
1289+
assertNotNull(retrieved);
1290+
assertEquals(3.14159, retrieved.getDouble("myDouble"), 0.00001);
1291+
}
1292+
1293+
@Test
1294+
public void testGetDoubleFallback() throws Exception {
1295+
DataObject entry = mtObj.newEntry();
1296+
String oid = entry.getString("_oid");
1297+
entry.saveDelta();
1298+
1299+
DataObject retrieved = mtObj.get(oid);
1300+
assertNotNull(retrieved);
1301+
assertEquals(2.71828, retrieved.getDouble("nonExistent", 2.71828), 0.00001);
1302+
}
1303+
1304+
@Test
1305+
public void testByteProp() throws Exception {
1306+
DataObject entry = mtObj.newEntry();
1307+
String oid = entry.getString("_oid");
1308+
entry.put("myByte", (byte) 12);
1309+
entry.saveDelta();
1310+
1311+
DataObject retrieved = mtObj.get(oid);
1312+
assertNotNull(retrieved);
1313+
assertEquals((byte) 12, retrieved.getByte("myByte"));
1314+
}
1315+
1316+
@Test
1317+
public void testGetByteFallback() throws Exception {
1318+
DataObject entry = mtObj.newEntry();
1319+
String oid = entry.getString("_oid");
1320+
entry.saveDelta();
1321+
1322+
DataObject retrieved = mtObj.get(oid);
1323+
assertNotNull(retrieved);
1324+
assertEquals((byte) 5, retrieved.getByte("nonExistent", (byte) 5));
1325+
}
1326+
1327+
@Test
1328+
public void testShortProp() throws Exception {
1329+
DataObject entry = mtObj.newEntry();
1330+
String oid = entry.getString("_oid");
1331+
entry.put("myShort", (short) 456);
1332+
entry.saveDelta();
1333+
1334+
DataObject retrieved = mtObj.get(oid);
1335+
assertNotNull(retrieved);
1336+
assertEquals((short) 456, retrieved.getShort("myShort"));
1337+
}
1338+
1339+
@Test
1340+
public void testGetShortFallback() throws Exception {
1341+
DataObject entry = mtObj.newEntry();
1342+
String oid = entry.getString("_oid");
1343+
entry.saveDelta();
1344+
1345+
DataObject retrieved = mtObj.get(oid);
1346+
assertNotNull(retrieved);
1347+
assertEquals((short) 9, retrieved.getShort("nonExistent", (short) 9));
1348+
}
1349+
1350+
@Test
1351+
public void testListProp() throws Exception {
1352+
DataObject entry = mtObj.newEntry();
1353+
String oid = entry.getString("_oid");
1354+
List<String> list = new ArrayList<String>();
1355+
list.add("item1");
1356+
list.add("item2");
1357+
entry.put("myList", list);
1358+
entry.saveDelta();
1359+
1360+
DataObject retrieved = mtObj.get(oid);
1361+
assertNotNull(retrieved);
1362+
List<String> retrievedList = retrieved.getList("myList");
1363+
assertNotNull(retrievedList);
1364+
assertEquals(2, retrievedList.size());
1365+
assertEquals("item1", retrievedList.get(0));
1366+
}
1367+
1368+
@Test
1369+
public void testGetListFallback() throws Exception {
1370+
DataObject entry = mtObj.newEntry();
1371+
String oid = entry.getString("_oid");
1372+
entry.saveDelta();
1373+
1374+
DataObject retrieved = mtObj.get(oid);
1375+
assertNotNull(retrieved);
1376+
List<String> fallbackList = new ArrayList<String>();
1377+
fallbackList.add("fallback-item");
1378+
assertEquals(fallbackList, retrieved.getList("nonExistent", fallbackList));
1379+
}
1380+
1381+
@Test
1382+
public void testStringArrayProp() throws Exception {
1383+
DataObject entry = mtObj.newEntry();
1384+
String oid = entry.getString("_oid");
1385+
String[] arr = new String[]{"val1", "val2"};
1386+
entry.put("myStrArr", arr);
1387+
entry.saveDelta();
1388+
1389+
DataObject retrieved = mtObj.get(oid);
1390+
assertNotNull(retrieved);
1391+
String[] retrievedArr = retrieved.getStringArray("myStrArr");
1392+
assertNotNull(retrievedArr);
1393+
assertEquals(2, retrievedArr.length);
1394+
assertEquals("val1", retrievedArr[0]);
1395+
}
1396+
1397+
@Test
1398+
public void testGetStringArrayFallback() throws Exception {
1399+
DataObject entry = mtObj.newEntry();
1400+
String oid = entry.getString("_oid");
1401+
entry.saveDelta();
1402+
1403+
DataObject retrieved = mtObj.get(oid);
1404+
assertNotNull(retrieved);
1405+
String[] fallbackArr = new String[]{"fb"};
1406+
assertArrayEquals(fallbackArr, retrieved.getStringArray("nonExistent", fallbackArr));
1407+
}
1408+
1409+
@Test
1410+
public void testObjectArrayProp() throws Exception {
1411+
DataObject entry = mtObj.newEntry();
1412+
String oid = entry.getString("_oid");
1413+
Object[] arr = new Object[]{"val1", 123};
1414+
entry.put("myObjArr", arr);
1415+
entry.saveDelta();
1416+
1417+
DataObject retrieved = mtObj.get(oid);
1418+
assertNotNull(retrieved);
1419+
Object[] retrievedArr = retrieved.getObjectArray("myObjArr");
1420+
assertNotNull(retrievedArr);
1421+
assertEquals(2, retrievedArr.length);
1422+
assertEquals("val1", retrievedArr[0]);
1423+
assertEquals(123, retrievedArr[1]);
1424+
}
1425+
1426+
@Test
1427+
public void testGetObjectArrayFallback() throws Exception {
1428+
DataObject entry = mtObj.newEntry();
1429+
String oid = entry.getString("_oid");
1430+
entry.saveDelta();
1431+
1432+
DataObject retrieved = mtObj.get(oid);
1433+
assertNotNull(retrieved);
1434+
Object[] fallbackArr = new Object[]{"fb"};
1435+
assertArrayEquals(fallbackArr, retrieved.getObjectArray("nonExistent", fallbackArr));
1436+
}
10901437
}

0 commit comments

Comments
 (0)