public static Path newListItem(Path list) throws IOException { createList(list); return list.resolve(Long.toString(getListSize(list))); }
@Test public void createList() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); Path list = DataBundles.getPort(inputs, "in1"); DataBundles.createList(list); assertTrue(Files.isDirectory(list)); }
@Test(expected = FileAlreadyExistsException.class) public void setReferenceExistsAsList() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); Path in1 = DataBundles.getPort(inputs, "in1"); DataBundles.createList(in1); assertTrue(Files.isDirectory(in1)); DataBundles.setReference(in1, URI.create("http://example.com/")); }
@Test(expected=FileAlreadyExistsException.class) public void newListAlreadyExistsAsReference() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); Path list = DataBundles.getPort(inputs, "in1"); Path ref = DataBundles.setReference(list, URI.create("http://example.com/")); assertFalse(Files.isRegularFile(list)); assertFalse(Files.isDirectory(list)); assertTrue(Files.isRegularFile(ref)); DataBundles.createList(list); }
@Test(expected=FileAlreadyExistsException.class) public void newListAlreadyExistsAsError() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); Path list = DataBundles.getPort(inputs, "in1"); Path err = DataBundles.setError(list, "a", "b"); assertFalse(Files.isRegularFile(list)); assertFalse(Files.isDirectory(list)); assertTrue(Files.isRegularFile(err)); DataBundles.createList(list); }
@Test(expected=FileAlreadyExistsException.class) public void newListAlreadyExistsAsFile() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); Path list = DataBundles.getPort(inputs, "in1"); DataBundles.setStringValue(list, "A string"); assertTrue(Files.isRegularFile(list)); assertFalse(Files.isDirectory(list)); DataBundles.createList(list); }
@Test(expected=FileAlreadyExistsException.class) public void setErrorExistsAsList() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); Path list = DataBundles.getPort(inputs, "in1"); DataBundles.createList(list); assertFalse(Files.isRegularFile(list)); assertTrue(Files.isDirectory(list)); DataBundles.setError(list, "a", "b"); }
@Test(expected=FileAlreadyExistsException.class) public void setStringExistsAsList() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); Path in1 = DataBundles.getPort(inputs, "in1"); DataBundles.createList(in1); assertTrue(Files.isDirectory(in1)); DataBundles.setStringValue(in1, "Hello"); }
Path inputs = DataBundles.getInputs(dataBundle); Path list = DataBundles.getPort(inputs, "in1"); DataBundles.createList(list); Path item0 = DataBundles.newListItem(list); assertEquals(list, item0.getParent());
@Test public void getPorts() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); DataBundles.createList(DataBundles.getPort(inputs, "in1")); DataBundles.createList(DataBundles.getPort(inputs, "in2")); DataBundles.setStringValue(DataBundles.getPort(inputs, "value"), "A value"); Map<String, Path> ports = DataBundles.getPorts(DataBundles .getInputs(dataBundle)); assertEquals(3, ports.size()); // System.out.println(ports); assertTrue(ports.containsKey("in1")); assertTrue(ports.containsKey("in2")); assertTrue(ports.containsKey("value")); assertEquals("A value", DataBundles.getStringValue(ports.get("value"))); }
@Test public void listOfLists() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); Path list = DataBundles.getPort(inputs, "in1"); DataBundles.createList(list); Path sublist0 = DataBundles.newListItem(list); DataBundles.createList(sublist0); Path sublist1 = DataBundles.newListItem(list); DataBundles.createList(sublist1); assertEquals(Arrays.asList("0/", "1/"), ls(list)); DataBundles.setStringValue(DataBundles.newListItem(sublist1), "Hello"); assertEquals(Arrays.asList("0"), ls(sublist1)); assertEquals("Hello",DataBundles.getStringValue( DataBundles.getListItem(DataBundles.getListItem(list, 1), 0))); }
@Test public void getList() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); Path list = DataBundles.getPort(inputs, "in1"); DataBundles.createList(list); for (int i = 0; i < 5; i++) { Path item = DataBundles.newListItem(list); DataBundles.setStringValue(item, "test" + i); } List<Path> paths = DataBundles.getList(list); assertEquals(5, paths.size()); assertEquals("test0", DataBundles.getStringValue(paths.get(0))); assertEquals("test4", DataBundles.getStringValue(paths.get(4))); assertEquals(null, DataBundles.getList(null)); }
@Test public void getListSize() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); Path list = DataBundles.getPort(inputs, "in1"); DataBundles.createList(list); for (int i = 0; i < 5; i++) { Path item = DataBundles.newListItem(list); DataBundles.setStringValue(item, "item " + i); } assertEquals(5, DataBundles.getListSize(list)); // set at next available position Path item5 = DataBundles.getListItem(list, 5); assertTrue(item5.getFileName().toString().contains("5")); DataBundles.setStringValue(item5, "item 5"); assertEquals(6, DataBundles.getListSize(list)); // set somewhere beyond the end Path item8 = DataBundles.getListItem(list, 8); assertTrue(item8.getFileName().toString().contains("8")); DataBundles.setStringValue(item8, "item 8"); assertEquals(9, DataBundles.getListSize(list)); // Evil test - very high number long highNumber = 3l * Integer.MAX_VALUE; Path itemHigh = DataBundles.getListItem(list, highNumber); assertTrue(itemHigh.getFileName().toString().contains(Long.toString(highNumber))); DataBundles.setStringValue(itemHigh, "item 6442450941"); assertEquals(highNumber+1l, DataBundles.getListSize(list)); }
Path inputs = DataBundles.getInputs(dataBundle); Path list = DataBundles.getPort(inputs, "in1"); DataBundles.createList(list); for (int i = 0; i < 5; i++) { Path item = DataBundles.newListItem(list);
DataBundles.createList(port2); // empty list if (DataBundles.isList(port2)) { List<Path> list = DataBundles.getList(port2);
@Test public void isList() throws Exception { Path inputs = DataBundles.getInputs(dataBundle); Path list = DataBundles.getPort(inputs, "in1"); DataBundles.createList(list); assertTrue(DataBundles.isList(list)); assertFalse(DataBundles.isValue(list)); assertFalse(DataBundles.isError(list)); assertFalse(DataBundles.isReference(list)); assertFalse(DataBundles.isMissing(list)); }