// 1.0
// //////////////////////////////////////////
// Resolve
ExtensionVersion extension =
getUtil().getRESTResource(Resources.EXTENSION_VERSION, null, this.baseExtension.getId().getId(), "1.0");
Assert.assertEquals(this.baseExtension.getId().getId(), extension.getId());
Assert.assertEquals(this.baseExtension.getType(), extension.getType());
Assert.assertEquals(this.baseExtension.getSummary(), extension.getSummary());
Assert.assertEquals(this.baseLicense.getName(), extension.getLicenses().get(0).getName());
Assert.assertEquals(this.baseExtension.getDescription(), extension.getDescription());
Assert.assertEquals(this.baseAuthor.getName(), extension.getAuthors().get(0).getName());
Assert.assertEquals(this.baseAuthor.getURL().toString(), extension.getAuthors().get(0).getUrl());
Assert.assertEquals("1.0", extension.getVersion());
Assert.assertEquals(getUtil().getURL("Extension", this.baseExtension.getName()), extension.getWebsite());
// File
Assert
.assertEquals(
this.sizeOfFile,
getUtil().getRESTBuffer(Resources.EXTENSION_VERSION_FILE, null, this.baseExtension.getId().getId(),
"1.0").length);
// //////////////////////////////////////////
// 2.0
// //////////////////////////////////////////
// Resolve
extension =
getUtil().getRESTResource(Resources.EXTENSION_VERSION, null, this.baseExtension.getId().getId(), "2.0");
Assert.assertEquals(this.baseExtension.getId().getId(), extension.getId());
Assert.assertEquals(this.baseExtension.getType(), extension.getType());
Assert.assertEquals(this.baseExtension.getSummary(), extension.getSummary());
Assert.assertEquals(this.baseLicense.getName(), extension.getLicenses().get(0).getName());
Assert.assertEquals(this.baseExtension.getDescription(), extension.getDescription());
Assert.assertEquals(this.baseAuthor.getName(), extension.getAuthors().get(0).getName());
Assert.assertEquals(this.baseAuthor.getURL().toString(), extension.getAuthors().get(0).getUrl());
Assert.assertEquals("2.0", extension.getVersion());
Assert.assertEquals(getUtil().getURL("Extension", this.baseExtension.getName()), extension.getWebsite());
// File
Assert
.assertEquals(
this.sizeOfFile,
getUtil().getRESTBuffer(Resources.EXTENSION_VERSION_FILE, null, this.baseExtension.getId().getId(),
"2.0").length);
// //////////////////////////////////////////
// 10.0
// //////////////////////////////////////////
// Resolve
extension =
getUtil().getRESTResource(Resources.EXTENSION_VERSION, null, this.baseExtension.getId().getId(), "10.0");
Assert.assertEquals(this.baseExtension.getId().getId(), extension.getId());
Assert.assertEquals(this.baseExtension.getType(), extension.getType());
Assert.assertEquals(this.baseExtension.getSummary(), extension.getSummary());
Assert.assertEquals(this.baseLicense.getName(), extension.getLicenses().get(0).getName());
Assert.assertEquals(this.baseExtension.getDescription(), extension.getDescription());
Assert.assertEquals(this.baseAuthor.getName(), extension.getAuthors().get(0).getName());
Assert.assertEquals(this.baseAuthor.getURL().toString(), extension.getAuthors().get(0).getUrl());
Assert.assertEquals("10.0", extension.getVersion());
Assert.assertEquals(getUtil().getURL("Extension", this.baseExtension.getName()), extension.getWebsite());
ExtensionDependency dependency1 = extension.getDependencies().get(0);
Assert.assertEquals("dependencyid1", dependency1.getId());
Assert.assertEquals("1.0", dependency1.getConstraint());
ExtensionDependency dependency2 = extension.getDependencies().get(1);
Assert.assertEquals("dependencyid2", dependency2.getId());
Assert.assertEquals("2.0", dependency2.getConstraint());
// File
Assert.assertEquals(
this.sizeOfFile,
getUtil().getRESTBuffer(Resources.EXTENSION_VERSION_FILE, null, this.baseExtension.getId().getId(),
this.baseExtension.getId().getVersion().getValue()).length);
// //////////////////////////////////////////
// Search
// //////////////////////////////////////////
// Empty search
Map<String, Object[]> queryParams = new HashMap<String, Object[]>();
ExtensionsSearchResult result = getUtil().getRESTResource(Resources.SEARCH, queryParams);
Assert.assertTrue(result.getTotalHits() >= 0);
Assert.assertEquals(0, result.getOffset());
extension = null;
for (ExtensionVersion extensionVersion : result.getExtensions()) {
if (extensionVersion.getId().equals(this.baseExtension.getId().getId())) {
extension = extensionVersion;
break;
}
}
if (extension == null) {
Assert.fail("Count not find extension [" + this.baseExtension.getId().getId() + "]");
}
Assert.assertEquals(this.baseExtension.getId().getId(), extension.getId());
Assert.assertEquals(this.baseExtension.getType(), extension.getType());
Assert.assertEquals(this.baseExtension.getSummary(), extension.getSummary());
Assert.assertEquals(this.baseLicense.getName(), extension.getLicenses().get(0).getName());
Assert.assertEquals(this.baseExtension.getDescription(), extension.getDescription());
Assert.assertEquals(this.baseAuthor.getName(), extension.getAuthors().get(0).getName());
Assert.assertEquals(this.baseAuthor.getURL().toString(), extension.getAuthors().get(0).getUrl());
Assert.assertEquals("10.0", extension.getVersion());
// TODO: add support for dependencies in XR search
// Search pattern
queryParams.clear();
queryParams.put(Resources.QPARAM_SEARCH_QUERY, new Object[] {"macro"});
result = getUtil().getRESTResource(Resources.SEARCH, queryParams);
Assert.assertEquals(1, result.getTotalHits());
Assert.assertEquals(0, result.getOffset());
extension = result.getExtensions().get(0);
Assert.assertEquals(this.baseExtension.getId().getId(), extension.getId());
Assert.assertEquals(this.baseExtension.getType(), extension.getType());
Assert.assertEquals(this.baseExtension.getSummary(), extension.getSummary());
Assert.assertEquals(this.baseLicense.getName(), extension.getLicenses().get(0).getName());
Assert.assertEquals(this.baseExtension.getDescription(), extension.getDescription());
Assert.assertEquals(this.baseAuthor.getName(), extension.getAuthors().get(0).getName());
Assert.assertEquals(this.baseAuthor.getURL().toString(), extension.getAuthors().get(0).getUrl());
Assert.assertEquals("10.0", extension.getVersion());
// Wrong search pattern
queryParams.clear();
queryParams.put(Resources.QPARAM_SEARCH_QUERY, new Object[] {"notexisting"});