package org.axway.grapes.server.webapp.resources; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.GenericType; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter; import com.yammer.dropwizard.auth.AuthenticationException; import com.yammer.dropwizard.auth.basic.BasicAuthProvider; import com.yammer.dropwizard.testing.ResourceTest; import com.yammer.dropwizard.views.ViewMessageBodyWriter; import org.axway.grapes.commons.api.ServerAPI; import org.axway.grapes.commons.datamodel.*; import org.axway.grapes.server.GrapesTestUtils; import org.axway.grapes.server.config.GrapesServerConfig; import org.axway.grapes.server.core.options.FiltersHolder; import org.axway.grapes.server.db.ModelMapper; import org.axway.grapes.server.db.RepositoryHandler; import org.axway.grapes.server.db.datamodel.*; import org.axway.grapes.server.webapp.auth.GrapesAuthenticator; import org.eclipse.jetty.http.HttpStatus; import org.junit.Test; import javax.ws.rs.core.MediaType; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.*; import static org.mockito.Matchers.anyObject; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.*; public class ArtifactResourceTest extends ResourceTest { private RepositoryHandler repositoryHandler; @Override protected void setUpResources() throws Exception { repositoryHandler = GrapesTestUtils.getRepoHandlerMock(); ArtifactResource resource = new ArtifactResource(repositoryHandler, mock(GrapesServerConfig.class)); addProvider(new BasicAuthProvider<DbCredential>(new GrapesAuthenticator(repositoryHandler), "test auth")); addProvider(ViewMessageBodyWriter.class); addResource(resource); } @Test public void getDocumentation(){ WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE); ClientResponse response = resource.type(MediaType.TEXT_HTML).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); } @Test public void postArtifact() throws AuthenticationException, UnknownHostException { Artifact artifact = DataModelFactory.createArtifact("groupId", "artifactId", "version", "classifier", "type", "extension"); artifact.setDownloadUrl("downloadUrl"); artifact.setSize("size"); client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.USER_4TEST, GrapesTestUtils.PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE); ClientResponse response = resource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class, artifact); assertNotNull(response); assertEquals(HttpStatus.CREATED_201, response.getStatus()); } @Test public void postMalFormedArtifact() throws AuthenticationException, UnknownHostException { client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.USER_4TEST, GrapesTestUtils.PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE); ClientResponse response = resource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class, DataModelFactory.createArtifact(null, null, null, null, null, null)); assertNotNull(response); assertEquals(HttpStatus.BAD_REQUEST_400, response.getStatus()); response = resource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class, DataModelFactory.createArtifact("groupId", null, null, null, null, null)); assertNotNull(response); assertEquals(HttpStatus.BAD_REQUEST_400, response.getStatus()); response = resource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class, DataModelFactory.createArtifact("groupId", "artifactId", null, null, null, null)); assertNotNull(response); assertEquals(HttpStatus.BAD_REQUEST_400, response.getStatus()); response = resource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class, DataModelFactory.createArtifact("", "", "", null, null, null)); assertNotNull(response); assertEquals(HttpStatus.BAD_REQUEST_400, response.getStatus()); } @Test public void updateDownloadURL() throws AuthenticationException, UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("version"); artifact.setClassifier("classifier"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.USER_4TEST, GrapesTestUtils.PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_DOWNLOAD_URL); ClientResponse response = resource.queryParam(ServerAPI.URL_PARAM, "testUrl").post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); verify(repositoryHandler, times(1)).updateDownloadUrl(artifact, "testUrl"); } @Test public void updateDownloadURLMalFormed() throws AuthenticationException, UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("version"); artifact.setClassifier("classifier"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.USER_4TEST, GrapesTestUtils.PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_DOWNLOAD_URL); ClientResponse response = resource.post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_ACCEPTABLE_406, response.getStatus()); } @Test public void updateProvider() throws AuthenticationException, UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("version"); artifact.setClassifier("classifier"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.USER_4TEST, GrapesTestUtils.PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_PROVIDER); ClientResponse response = resource.queryParam(ServerAPI.PROVIDER_PARAM, "providerTest").post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); verify(repositoryHandler, times(1)).updateProvider(artifact, "providerTest"); } @Test public void updateProviderMalFormed() throws AuthenticationException, UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("version"); artifact.setClassifier("classifier"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.USER_4TEST, GrapesTestUtils.PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_PROVIDER); ClientResponse response = resource.post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_ACCEPTABLE_406, response.getStatus()); } @Test public void getAllGavcs() throws UnknownHostException{ final List<String> gavcs = new ArrayList<String>(); gavcs.add("gavc1"); when(repositoryHandler.getGavcs((FiltersHolder) anyObject())).thenReturn(gavcs); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + ServerAPI.GET_GAVCS); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); final List<String> gavcsResults = response.getEntity(new GenericType<List<String>>(){}); assertNotNull(gavcsResults); assertEquals(1, gavcsResults.size()); assertEquals("gavc1", gavcsResults.get(0)); } @Test public void getAllGroupIds() throws UnknownHostException{ final List<String> groupIds = new ArrayList<String>(); groupIds.add("groupId1"); when(repositoryHandler.getGroupIds((FiltersHolder) anyObject())).thenReturn(groupIds); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + ServerAPI.GET_GROUPIDS); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); final List<String> results = response.getEntity(new GenericType<List<String>>(){}); assertNotNull(results); assertEquals(1, results.size()); assertEquals("groupId1", results.get(0)); } @Test public void getAnArtifact() throws UnknownHostException{ final DbArtifact dbArtifact = new DbArtifact(); dbArtifact.setGroupId("groupId"); dbArtifact.setArtifactId("artifactId"); dbArtifact.setVersion("1.0.0-SNAPSHOT"); dbArtifact.setClassifier("win"); dbArtifact.setType("component"); dbArtifact.setExtension("jar"); dbArtifact.setDownloadUrl("nowhere"); dbArtifact.setSize("10Mo"); final DbLicense license = new DbLicense(); license.setName("licenseId"); dbArtifact.addLicense(license); when(repositoryHandler.getArtifact(dbArtifact.getGavc())).thenReturn(dbArtifact); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + dbArtifact.getGavc()); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); Artifact artifact = response.getEntity(Artifact.class); assertNotNull(artifact); assertEquals(dbArtifact.getGroupId(), artifact.getGroupId()); assertEquals(dbArtifact.getArtifactId(), artifact.getArtifactId()); assertEquals(dbArtifact.getVersion(), artifact.getVersion()); assertEquals(dbArtifact.getClassifier(), artifact.getClassifier()); assertEquals(dbArtifact.getType(), artifact.getType()); assertEquals(dbArtifact.getExtension(), artifact.getExtension()); assertEquals(dbArtifact.getSize(), artifact.getSize()); assertEquals(dbArtifact.getDownloadUrl(), artifact.getDownloadUrl()); assertEquals(1, artifact.getLicenses().size()); assertEquals("licenseId", artifact.getLicenses().get(0)); } @Test public void deleteAnArtifact() throws UnknownHostException, AuthenticationException{ when(repositoryHandler.getArtifact(anyString())).thenReturn(new DbArtifact()); client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.USER_4TEST, GrapesTestUtils.PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/gavc"); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).delete(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); } @Test public void getAncestors() throws UnknownHostException { final List<DbModule> dependencies = new ArrayList<DbModule>(); final DbModule module = new DbModule(); module.setName("module"); module.setVersion("version"); final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("version"); module.addDependency(artifact.getGavc(), Scope.TEST); dependencies.add(module); when(repositoryHandler.getAncestors((DbArtifact) anyObject(), (FiltersHolder) anyObject())).thenReturn(dependencies); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_ANCESTORS); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); final List<Dependency> dependencyList = response.getEntity(new GenericType<List<Dependency>>(){}); assertNotNull(dependencyList); assertEquals(1, dependencyList.size()); assertEquals(module.getName(), dependencyList.get(0).getSourceName()); assertEquals(module.getVersion(), dependencyList.get(0).getSourceVersion()); assertEquals(artifact.getGavc(), dependencyList.get(0).getTarget().getGavc()); assertEquals(Scope.TEST, dependencyList.get(0).getScope()); } @Test public void getLicenses() throws UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("version"); final DbLicense license = new DbLicense(); license.setName("licenseId"); artifact.addLicense(license); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); when(repositoryHandler.getLicense(license.getName())).thenReturn(license); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_LICENSES); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); final List<License> licenses = response.getEntity(new GenericType<List<License>>(){}); assertNotNull(licenses); assertEquals(1, licenses.size()); final ModelMapper modelMapper = new ModelMapper(repositoryHandler); assertEquals(modelMapper.getLicense(license), licenses.get(0)); } @Test public void getVersions() throws UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("version"); final List<String> versions = new ArrayList<String>(); versions.add("1"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); when(repositoryHandler.getArtifactVersions(artifact)).thenReturn(versions); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_VERSIONS); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); final List<String> receivedVersions = response.getEntity(new GenericType<List<String>>(){}); assertNotNull(receivedVersions); assertEquals(1, receivedVersions.size()); assertEquals("1", receivedVersions.get(0)); } @Test public void getLastVersion() throws UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("version"); final List<String> versions = new ArrayList<String>(); versions.add("1"); versions.add("2"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); when(repositoryHandler.getArtifactVersions(artifact)).thenReturn(versions); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_LAST_VERSION); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); String lastVersion = response.getEntity(String.class); assertNotNull(lastVersion); assertEquals("2", lastVersion); } @Test public void getAddLicenseToArtifact() throws AuthenticationException, UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("version"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); final DbLicense license = new DbLicense(); license.setName("licenseId"); when(repositoryHandler.getLicense(license.getName())).thenReturn(license); client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.USER_4TEST, GrapesTestUtils.PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_LICENSES); ClientResponse response = resource.queryParam(ServerAPI.LICENSE_ID_PARAM, license.getName()).post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); verify(repositoryHandler, times(1)).addLicenseToArtifact(artifact, license.getName()); } @Test public void getRemoveLicenseToArtifact() throws AuthenticationException, UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("version"); final DbLicense license = new DbLicense(); license.setName("licenseId"); artifact.addLicense(license); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.USER_4TEST, GrapesTestUtils.PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_LICENSES); ClientResponse response = resource.queryParam(ServerAPI.LICENSE_ID_PARAM, license.getName()).delete(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); verify(repositoryHandler, times(1)).removeLicenseFromArtifact(artifact, license.getName()); } @Test public void addDoNotUseFlag() throws AuthenticationException, UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("version"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.USER_4TEST, GrapesTestUtils.PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.SET_DO_NOT_USE); ClientResponse response = resource.queryParam(ServerAPI.DO_NOT_USE, "true").post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); verify(repositoryHandler, times(1)).updateDoNotUse(artifact, Boolean.TRUE); } @Test public void getDoNotUse() throws UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("1.0.0"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.SET_DO_NOT_USE); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); final Boolean test = response.getEntity(Boolean.class); assertNotNull(test); assertFalse(test); } @Test public void getModule() throws UnknownHostException { final DbModule dbModule = new DbModule(); dbModule.setName("module1"); dbModule.setVersion("1.0.0"); final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("1.0.0"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); when(repositoryHandler.getRootModuleOf(artifact.getGavc())).thenReturn(dbModule); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_MODULE); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); final Module gotModule = response.getEntity(Module.class); assertNotNull(gotModule); assertEquals(dbModule.getName(), gotModule.getName()); assertEquals(dbModule.getVersion(), gotModule.getVersion()); } @Test public void getModuleThatDoesNotExist() throws UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("2.3.0"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); when(repositoryHandler.getRootModuleOf(artifact.getGavc())).thenReturn(null); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_MODULE); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NO_CONTENT_204, response.getStatus()); } @Test public void getOrganization() throws UnknownHostException { final DbOrganization dbOrganization = new DbOrganization(); dbOrganization.setName("organization1"); final DbModule dbModule = new DbModule(); dbModule.setName("module1"); dbModule.setVersion("1.0.0"); dbModule.setOrganization(dbOrganization.getName()); final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("1.0.0"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); when(repositoryHandler.getRootModuleOf(artifact.getGavc())).thenReturn(dbModule); when(repositoryHandler.getOrganization(dbOrganization.getName())).thenReturn(dbOrganization); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_ORGANIZATION); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.OK_200, response.getStatus()); final Organization gotOrganization = response.getEntity(Organization.class); assertNotNull(gotOrganization); assertEquals(dbOrganization.getName(), gotOrganization.getName()); } @Test public void getOrganizationButTheModuleDoesNotHoldAny() throws UnknownHostException { final DbModule dbModule = new DbModule(); dbModule.setName("module1"); dbModule.setVersion("1.0.0"); final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("1.0.0"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); when(repositoryHandler.getRootModuleOf(artifact.getGavc())).thenReturn(dbModule); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_ORGANIZATION); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NO_CONTENT_204, response.getStatus()); } @Test public void getOrganizationButThereIsNoModule() throws UnknownHostException { final DbArtifact artifact = new DbArtifact(); artifact.setGroupId("groupId"); artifact.setArtifactId("artifactId"); artifact.setVersion("1.0.0"); when(repositoryHandler.getArtifact(artifact.getGavc())).thenReturn(artifact); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/" + artifact.getGavc() + ServerAPI.GET_ORGANIZATION); ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NO_CONTENT_204, response.getStatus()); } @Test public void checkAuthenticationOnPostAndDeleteMethods(){ client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.WRONG_USER_4TEST, GrapesTestUtils.WRONG_PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE); ClientResponse response = resource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.UNAUTHORIZED_401, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE); response = resource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.UNAUTHORIZED_401, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/gavc"); response = resource.type(MediaType.APPLICATION_JSON).delete(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.UNAUTHORIZED_401, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/gavc" + ServerAPI.GET_LICENSES); response = resource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.UNAUTHORIZED_401, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/gavc" + ServerAPI.GET_LICENSES); response = resource.type(MediaType.APPLICATION_JSON).delete(ClientResponse.class); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/gavc" + ServerAPI.SET_DO_NOT_USE); response = resource.post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.UNAUTHORIZED_401, response.getStatus()); response = resource.type(MediaType.APPLICATION_JSON).delete(ClientResponse.class); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/gavc" + ServerAPI.GET_DOWNLOAD_URL); response = resource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.UNAUTHORIZED_401, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/gavc" + ServerAPI.GET_PROVIDER); response = resource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.UNAUTHORIZED_401, response.getStatus()); } @Test public void notFound() throws AuthenticationException, UnknownHostException { client().addFilter(new HTTPBasicAuthFilter(GrapesTestUtils.USER_4TEST, GrapesTestUtils.PASSWORD_4TEST)); WebResource resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrong" + ServerAPI.GET_LICENSES); ClientResponse response = resource.queryParam(ServerAPI.LICENSE_ID_PARAM, "test").post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrong" + ServerAPI.GET_LICENSES); response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrong" + ServerAPI.GET_ANCESTORS); response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrongGavc"); response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrongGavc"); response = resource.accept(MediaType.APPLICATION_JSON).delete(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrongGavc" + ServerAPI.GET_LICENSES); response = resource.queryParam(ServerAPI.LICENSE_ID_PARAM, "test").delete(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrongGavc" + ServerAPI.GET_LICENSES); response = resource.queryParam(ServerAPI.LICENSE_ID_PARAM, "test").delete(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrongGavc" + ServerAPI.SET_DO_NOT_USE); response = resource.queryParam(ServerAPI.DO_NOT_USE, "true").post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrongGavc" + ServerAPI.GET_DOWNLOAD_URL); response = resource.queryParam(ServerAPI.URL_PARAM, "test").post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrongGavc" + ServerAPI.GET_PROVIDER); response = resource.queryParam(ServerAPI.PROVIDER_PARAM, "test").post(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrongGavc" + ServerAPI.GET_VERSIONS); response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); resource = client().resource("/" + ServerAPI.ARTIFACT_RESOURCE + "/wrongGavc" + ServerAPI.GET_LAST_VERSION); response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); assertNotNull(response); assertEquals(HttpStatus.NOT_FOUND_404, response.getStatus()); } }