@Test public void testUpdateResource() { final String KEY_STRING = "stringAtt"; final String KEY_DATE = "dateAtt"; final Date origDate = new Date(); final String origString = "OrigStringValue"; Long rid; createDefaultCategory(); { RESTStoredData storedData = new RESTStoredData(); storedData.setData("we wish you a merry xmas and a happy new year"); List<ShortAttribute> attrList = new ArrayList<ShortAttribute>(); attrList.add(new ShortAttribute("string1", "value1", DataType.STRING)); attrList.add(new ShortAttribute("string2", "value2", DataType.STRING)); attrList.add(new ShortAttribute("string3", "value3", DataType.STRING)); String timeid = Long.toString(System.currentTimeMillis()); RESTResource origResource = new RESTResource(); origResource.setCategory(new RESTCategory(DEFAULTCATEGORYNAME)); origResource.setName("rest_test_resource_" + timeid); origResource.setStore(storedData); origResource.setAttribute(attrList); rid = client.insert(origResource); } System.out.println("RESOURCE has ID " + rid); // test getResource String name1 = "rest_test_resource_" + Long.toString(System.currentTimeMillis()); { RESTResource updResource = new RESTResource(); updResource.setName(name1); List<ShortAttribute> attrList = new ArrayList<ShortAttribute>(); attrList.add(new ShortAttribute("string1", "value1", DataType.STRING)); // same attrList.add(new ShortAttribute("string2", "value2.2", DataType.STRING)); // updated // attrList.add(new ShortAttribute("string3", "value3", DataType.STRING)); //removed attrList.add(new ShortAttribute("string4", "value4", DataType.STRING)); // added updResource.setAttribute(attrList); client.updateResource(rid, updResource); } { Resource loaded = client.getResource(rid); System.out.println("RESOURCE: " + loaded); // test reloaded attrs List<Attribute> loadedAttrs = loaded.getAttribute(); assertEquals(3, loadedAttrs.size()); Map<String, String> attMap = new HashMap<String, String>(); for (Attribute attribute : loadedAttrs) { attMap.put(attribute.getName(), attribute.getTextValue()); } assertEquals("value1", attMap.get("string1")); assertEquals("value2.2", attMap.get("string2")); assertEquals("value4", attMap.get("string4")); } // try bad update { RESTResource res = new RESTResource(); res.setCategory(new RESTCategory("TestCategory2")); try { client.updateResource(rid, res); fail("Undetected error"); } catch (UniformInterfaceException e) { String response = "COULD NOT READ RESPONSE"; try { response = IOUtils.toString(e.getResponse().getEntityInputStream()); } catch (Exception e2) { LOGGER.warn("Error reading response: " + e2.getMessage()); } LOGGER.info("Error condition successfully detected: " + response); } catch (Exception e) { LOGGER.info("Error condition successfully detected:" + e.getMessage(), e); } } client.deleteResource(rid); }
@Test public void testRemoveAllAttribs() { final String KEY_STRING = "stringAtt"; final Date origDate = new Date(); final String origString = "OrigStringValue"; RESTStoredData storedData = new RESTStoredData(); storedData.setData("we wish you a merry xmas and a happy new year"); List<ShortAttribute> attrList = new ArrayList<ShortAttribute>(); attrList.add(new ShortAttribute(KEY_STRING, origString, DataType.STRING)); String timeid = Long.toString(System.currentTimeMillis()); createDefaultCategory(); RESTResource origResource = new RESTResource(); origResource.setCategory(new RESTCategory(DEFAULTCATEGORYNAME)); origResource.setName("rest_test_resource_" + timeid); origResource.setStore(storedData); origResource.setAttribute(attrList); Long rid = client.insert(origResource); System.out.println("RESOURCE has ID " + rid); // test getResource { Resource loaded = client.getResource(rid); System.out.println("RESOURCE: " + loaded); // test reloaded attrs List<Attribute> loadedAttrs = loaded.getAttribute(); assertEquals(1, loadedAttrs.size()); } // remove attrib list // once updated, the attribs should be the same origResource.setAttribute(null); client.updateResource(rid, origResource); { Resource loaded = client.getResource(rid); System.out.println("RESOURCE: " + loaded); // test reloaded attrs List<Attribute> loadedAttrs = loaded.getAttribute(); assertEquals(1, loadedAttrs.size()); } // reattach a 0-length list // once updated, there should be no attribs in the resource origResource.setAttribute(new ArrayList<ShortAttribute>()); assertTrue(origResource.getAttribute().isEmpty()); client.updateResource(rid, origResource); // test getResource { Resource loaded = client.getResource(rid); System.out.println("RESOURCE: " + loaded); // test reloaded attrs List<Attribute> loadedAttrs = loaded.getAttribute(); assertEquals(0, loadedAttrs.size()); } }
@Test // @Ignore public void testInsertResource() { final String KEY_STRING = "stringAtt"; final String KEY_DATE = "dateAtt"; final Date origDate = new Date(); final String origString = "OrigStringValue"; createDefaultCategory(); RESTStoredData storedData = new RESTStoredData(); storedData.setData("we wish you a merry xmas and a happy new year"); List<ShortAttribute> attrList = new ArrayList<ShortAttribute>(); attrList.add(new ShortAttribute(KEY_STRING, origString, DataType.STRING)); attrList.add(ShortAttribute.createDateAttribute(KEY_DATE, origDate)); String timeid = Long.toString(System.currentTimeMillis()); RESTResource origResource = new RESTResource(); origResource.setCategory(new RESTCategory(DEFAULTCATEGORYNAME)); origResource.setName("rest_test_resource_" + timeid); origResource.setStore(storedData); origResource.setAttribute(attrList); Long rid = client.insert(origResource); System.out.println("RESOURCE has ID " + rid); // test getResource { Resource loaded = client.getResource(rid); System.out.println("RESOURCE: " + loaded); // test reloaded attrs List<Attribute> loadedAttrs = loaded.getAttribute(); assertEquals(2, loadedAttrs.size()); Attribute satt, datt; if (loadedAttrs.get(0).getType() == DataType.STRING) { satt = loadedAttrs.get(0); datt = loadedAttrs.get(1); } else { datt = loadedAttrs.get(0); satt = loadedAttrs.get(1); } assertEquals(DataType.STRING, satt.getType()); assertEquals(KEY_STRING, satt.getName()); assertEquals(origString, satt.getTextValue()); assertEquals(DataType.DATE, datt.getType()); assertEquals(KEY_DATE, datt.getName()); assertEquals(origDate, datt.getDateValue()); } // test Search SearchFilter searchFilter = new FieldFilter(BaseField.NAME, "%" + timeid, SearchOperator.LIKE); ShortResourceList rlist = client.searchResources(searchFilter); assertNotNull(rlist); assertEquals(1, rlist.getList().size()); assertEquals(rid, (Long) rlist.getList().get(0).getId()); }