@Test @RunAsClient
public void testUpdateAssetFromAtom(@ArquillianResource URL baseURL) throws Exception {
URL url = new URL(baseURL + "rest/packages/restPackage1/assets/model5");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestProperty("Authorization",
"Basic " + new Base64().encodeToString(( "admin:admin".getBytes() )));
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", MediaType.APPLICATION_ATOM_XML);
connection.connect();
assertEquals (200, connection.getResponseCode());
assertEquals(MediaType.APPLICATION_ATOM_XML, connection.getContentType());
//System.out.println(GetContent(connection));
InputStream in = connection.getInputStream();
assertNotNull(in);
Document<Entry> doc = abdera.getParser().parse(in);
Entry entry = doc.getRoot();
assertEquals(baseURL.getPath() + "rest/packages/restPackage1/assets/model5", entry.getBaseUri().getPath());
assertEquals("model5", entry.getTitle());
assertNotNull(entry.getPublished());
assertNotNull(entry.getAuthor().getName());
assertEquals("desc for model5", entry.getSummary());
//assertEquals(MediaType.APPLICATION_OCTET_STREAM_TYPE.getType(), entry.getContentMimeType().getPrimaryType());
assertEquals(baseURL.getPath() + "rest/packages/restPackage1/assets/model5/binary", entry.getContentSrc().getPath());
ExtensibleElement metadataExtension = entry.getExtension(Translator.METADATA);
ExtensibleElement archivedExtension = metadataExtension.getExtension(Translator.ARCHIVED);
assertEquals("false", archivedExtension.getSimpleExtension(Translator.VALUE));
ExtensibleElement stateExtension = metadataExtension.getExtension(Translator.STATE);
assertEquals("Draft", stateExtension.getSimpleExtension(Translator.VALUE));
ExtensibleElement formatExtension = metadataExtension.getExtension(Translator.FORMAT);
assertEquals("model.drl", formatExtension.getSimpleExtension(Translator.VALUE));
ExtensibleElement uuidExtension = metadataExtension.getExtension(Translator.UUID);
assertNotNull(uuidExtension.getSimpleExtension(Translator.VALUE));
ExtensibleElement categoryExtension = metadataExtension.getExtension(Translator.CATEGORIES);
assertEquals("AssetPackageResourceTestCategory", categoryExtension.getSimpleExtension(Translator.VALUE));
connection.disconnect();
//Update category. Add a new category tag
categoryExtension.addSimpleExtension(Translator.VALUE, "AssetPackageResourceTestCategory2");
//Update state
stateExtension.<Element>getExtension(Translator.VALUE).setText("Dev");
//Update format
formatExtension.<Element>getExtension(Translator.VALUE).setText("anotherformat");
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Authorization",
"Basic " + new Base64().encodeToString(( "admin:admin".getBytes() )));
connection.setRequestMethod("PUT");
connection.setRequestProperty("Content-Type", MediaType.APPLICATION_ATOM_XML);
connection.setDoOutput(true);
entry.writeTo(connection.getOutputStream());
assertEquals(204, connection.getResponseCode());
connection.disconnect();
//Verify again
connection = (HttpURLConnection)url.openConnection();
connection.setRequestProperty("Authorization",
"Basic " + new Base64().encodeToString(( "admin:admin".getBytes() )));
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", MediaType.APPLICATION_ATOM_XML);
connection.connect();
assertEquals (200, connection.getResponseCode());
//System.out.println(GetContent(connection));
in = connection.getInputStream();
assertNotNull(in);
doc = abdera.getParser().parse(in);
entry = doc.getRoot();
metadataExtension = entry.getExtension(Translator.METADATA);
archivedExtension = metadataExtension.getExtension(Translator.ARCHIVED);
assertEquals("false", archivedExtension.getSimpleExtension(Translator.VALUE));
stateExtension = metadataExtension.getExtension(Translator.STATE);
assertEquals("Dev", stateExtension.getSimpleExtension(Translator.VALUE));
formatExtension = metadataExtension.getExtension(Translator.FORMAT);
assertEquals("anotherformat", formatExtension.getSimpleExtension(Translator.VALUE));
categoryExtension = metadataExtension.getExtension(Translator.CATEGORIES);
List<Element> categoryValues = categoryExtension.getExtensions(Translator.VALUE);
assertTrue(categoryValues.size() == 2);
boolean foundCategory1 = false;
boolean foundCategory2 = false;
for (Element cat : categoryValues) {
String catgoryValue = cat.getText();
if ("AssetPackageResourceTestCategory".equals(catgoryValue)) {
foundCategory1 = true;
}
if ("AssetPackageResourceTestCategory2".equals(catgoryValue)) {
foundCategory2 = true;
}
}
assertTrue(foundCategory1);
assertTrue(foundCategory2);
url = new URL(baseURL, "rest/packages/restPackage1/assets/model5/source");
connection = (HttpURLConnection)url.openConnection();
connection.setRequestProperty("Authorization",
"Basic " + new Base64().encodeToString(( "admin:admin".getBytes() )));
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", MediaType.TEXT_PLAIN);
connection.connect();
assertEquals (200, connection.getResponseCode());
assertEquals(MediaType.TEXT_PLAIN, connection.getContentType());