use of org.wso2.carbon.apimgt.core.dao.ApiDAO in project carbon-apimgt by wso2.
the class ApiDAOImplIT method testGetAPIsByStatus.
@Test
public void testGetAPIsByStatus() throws Exception {
ApiDAO apiDAO = DAOFactory.getApiDAO();
// Define statuses used in test
final String publishedStatus = "PUBLISHED";
final String createdStatus = "CREATED";
final String maintenanceStatus = "MAINTENANCE";
// Define number of APIs to be created for a given status
final int numberOfPublished = 4;
final int numberOfCreated = 2;
final int numberOfInMaintenance = 1;
// Add APIs
List<API> publishedAPIsSummary = new ArrayList<>();
testAddGetEndpoint();
for (int i = 0; i < numberOfPublished; ++i) {
API api = SampleTestObjectCreator.createUniqueAPI().lifeCycleStatus(publishedStatus).build();
publishedAPIsSummary.add(SampleTestObjectCreator.getSummaryFromAPI(api));
apiDAO.addAPI(api);
}
List<API> createdAPIsSummary = new ArrayList<>();
for (int i = 0; i < numberOfCreated; ++i) {
API api = SampleTestObjectCreator.createUniqueAPI().lifeCycleStatus(createdStatus).build();
createdAPIsSummary.add(SampleTestObjectCreator.getSummaryFromAPI(api));
apiDAO.addAPI(api);
}
List<API> maintenanceAPIsSummary = new ArrayList<>();
for (int i = 0; i < numberOfInMaintenance; ++i) {
API api = SampleTestObjectCreator.createUniqueAPI().lifeCycleStatus(maintenanceStatus).build();
maintenanceAPIsSummary.add(SampleTestObjectCreator.getSummaryFromAPI(api));
apiDAO.addAPI(api);
}
// Filter APIs by single status
List<String> singleStatus = new ArrayList<>();
singleStatus.add(publishedStatus);
List<API> apiList = apiDAO.getAPIsByStatus(singleStatus);
Assert.assertTrue(APIUtils.isListsEqualIgnoreOrder(apiList, publishedAPIsSummary, new APIComparator()));
// Filter APIs by two statuses
List<String> twoStatuses = new ArrayList<>();
twoStatuses.add(publishedStatus);
twoStatuses.add(maintenanceStatus);
apiList = apiDAO.getAPIsByStatus(twoStatuses);
Assert.assertEquals(apiList.size(), publishedAPIsSummary.size() + maintenanceAPIsSummary.size());
for (API api : publishedAPIsSummary) {
Assert.assertTrue(apiList.contains(api));
apiList.remove(api);
}
for (API api : maintenanceAPIsSummary) {
Assert.assertTrue(apiList.contains(api));
apiList.remove(api);
}
Assert.assertTrue(apiList.isEmpty());
// Filter APIs by multiple statuses
List<String> multipleStatuses = new ArrayList<>();
multipleStatuses.add(publishedStatus);
multipleStatuses.add(createdStatus);
multipleStatuses.add(maintenanceStatus);
apiList = apiDAO.getAPIsByStatus(multipleStatuses);
Assert.assertEquals(apiList.size(), publishedAPIsSummary.size() + maintenanceAPIsSummary.size() + createdAPIsSummary.size());
for (API api : publishedAPIsSummary) {
Assert.assertTrue(apiList.contains(api));
apiList.remove(api);
}
for (API api : maintenanceAPIsSummary) {
Assert.assertTrue(apiList.contains(api));
apiList.remove(api);
}
for (API api : createdAPIsSummary) {
Assert.assertTrue(apiList.contains(api));
apiList.remove(api);
}
Assert.assertTrue(apiList.isEmpty());
}
use of org.wso2.carbon.apimgt.core.dao.ApiDAO in project carbon-apimgt by wso2.
the class ApiDAOImplIT method testAddSameAPIWithDifferentProviders.
@Test
public void testAddSameAPIWithDifferentProviders() throws Exception {
ApiDAO apiDAO = DAOFactory.getApiDAO();
API api = SampleTestObjectCreator.createUniqueAPI().build();
apiDAO.addAPI(api);
API.APIBuilder duplicateAPIBuilder = SampleTestObjectCreator.createUniqueAPI();
duplicateAPIBuilder.name(api.getName());
duplicateAPIBuilder.version(api.getVersion());
API duplicateAPI = duplicateAPIBuilder.build();
apiDAO.addAPI(duplicateAPI);
API apiFromDB = apiDAO.getAPI(api.getId());
API duplicateApiFromDB = apiDAO.getAPI(duplicateAPI.getId());
Assert.assertEquals(duplicateApiFromDB.getName(), api.getName());
Assert.assertEquals(duplicateApiFromDB.getVersion(), api.getVersion());
Assert.assertEquals(apiDAO.getAPIs(new HashSet<String>(), api.getProvider()).size(), 1);
Assert.assertEquals(apiFromDB, api, TestUtil.printDiff(apiFromDB, api));
Assert.assertEquals(duplicateApiFromDB, duplicateAPI, TestUtil.printDiff(duplicateApiFromDB, duplicateAPI));
}
use of org.wso2.carbon.apimgt.core.dao.ApiDAO in project carbon-apimgt by wso2.
the class ApiDAOImplIT method testFingerprintAfterUpdatingThumbnailImage.
@Test
public void testFingerprintAfterUpdatingThumbnailImage() throws Exception {
ApiDAO apiDAO = DAOFactory.getApiDAO();
API.APIBuilder builder = SampleTestObjectCreator.createDefaultAPI();
API api = builder.build();
testAddGetEndpoint();
apiDAO.addAPI(api);
apiDAO.updateImage(api.getId(), SampleTestObjectCreator.createDefaultThumbnailImage(), "image/jpg", ADMIN);
String fingerprintBeforeUpdate = ETagUtils.generateETag(apiDAO.getLastUpdatedTimeOfAPIThumbnailImage(api.getId()));
Assert.assertNotNull(fingerprintBeforeUpdate);
Thread.sleep(1);
apiDAO.updateImage(api.getId(), SampleTestObjectCreator.createAlternativeThumbnailImage(), "image/jpg", ADMIN);
String fingerprintAfterUpdate = ETagUtils.generateETag(apiDAO.getLastUpdatedTimeOfAPIThumbnailImage(api.getId()));
Assert.assertNotNull(fingerprintAfterUpdate);
Assert.assertNotEquals(fingerprintBeforeUpdate, fingerprintAfterUpdate);
}
use of org.wso2.carbon.apimgt.core.dao.ApiDAO in project carbon-apimgt by wso2.
the class ApiDAOImplIT method testUpdateAPIWithBlankwsdlUri.
@Test
public void testUpdateAPIWithBlankwsdlUri() throws Exception {
ApiDAO apiDAO = DAOFactory.getApiDAO();
API.APIBuilder builder = SampleTestObjectCreator.createDefaultAPI();
API api = builder.build();
testAddGetEndpoint();
apiDAO.addAPI(api);
Map permissionMap = new HashMap();
permissionMap.put(APIMgtConstants.Permission.UPDATE, APIMgtConstants.Permission.UPDATE_PERMISSION);
builder = SampleTestObjectCreator.createAlternativeAPI().permissionMap(permissionMap).wsdlUri(null);
API substituteAPI = builder.build();
apiDAO.updateAPI(api.getId(), substituteAPI);
API apiFromDB = apiDAO.getAPI(api.getId());
API expectedAPI = SampleTestObjectCreator.copyAPIIgnoringNonEditableFields(api, substituteAPI);
Assert.assertNotNull(apiFromDB);
Assert.assertEquals(apiFromDB, expectedAPI, TestUtil.printDiff(apiFromDB, expectedAPI));
}
use of org.wso2.carbon.apimgt.core.dao.ApiDAO in project carbon-apimgt by wso2.
the class ApiDAOImplIT method testAddApiAndResourceSpecificEndpointToApi.
@Test
public void testAddApiAndResourceSpecificEndpointToApi() throws APIMgtDAOException {
Endpoint apiSpecificEndpoint = new Endpoint.Builder(SampleTestObjectCreator.createMockEndpoint()).applicableLevel(APIMgtConstants.API_SPECIFIC_ENDPOINT).build();
Endpoint urlSpecificEndpoint = new Endpoint.Builder(SampleTestObjectCreator.createMockEndpoint()).id(UUID.randomUUID().toString()).applicableLevel(APIMgtConstants.API_SPECIFIC_ENDPOINT).name("URI1").build();
Endpoint endpointToInsert = SampleTestObjectCreator.createAlternativeEndpoint();
Endpoint globalEndpoint = new Endpoint.Builder().applicableLevel(APIMgtConstants.GLOBAL_ENDPOINT).id(endpointToInsert.getId()).build();
Map<String, Endpoint> apiEndpointMap = new HashMap();
apiEndpointMap.put(APIMgtConstants.PRODUCTION_ENDPOINT, apiSpecificEndpoint);
apiEndpointMap.put(APIMgtConstants.SANDBOX_ENDPOINT, globalEndpoint);
Map<String, Endpoint> uriTemplateEndpointMap = new HashMap();
uriTemplateEndpointMap.put(APIMgtConstants.PRODUCTION_ENDPOINT, urlSpecificEndpoint);
Map<String, UriTemplate> uriTemplateMap = SampleTestObjectCreator.getMockUriTemplates();
uriTemplateMap.forEach((k, v) -> {
UriTemplate uriTemplate = new UriTemplate.UriTemplateBuilder(v).endpoint(uriTemplateEndpointMap).build();
uriTemplateMap.replace(k, uriTemplate);
});
ApiDAO apiDAO = DAOFactory.getApiDAO();
API api = SampleTestObjectCreator.createDefaultAPI().apiDefinition(SampleTestObjectCreator.apiDefinition).endpoint(apiEndpointMap).uriTemplates(uriTemplateMap).build();
apiDAO.addEndpoint(endpointToInsert);
apiDAO.addAPI(api);
Map<String, Endpoint> retrievedApiEndpoint = apiDAO.getAPI(api.getId()).getEndpoint();
Assert.assertTrue(apiDAO.isEndpointAssociated(globalEndpoint.getId()));
Assert.assertEquals(apiEndpointMap, retrievedApiEndpoint);
apiDAO.deleteAPI(api.getId());
Endpoint retrievedGlobal = apiDAO.getEndpoint(globalEndpoint.getId());
Assert.assertNotNull(retrievedGlobal);
Assert.assertEquals(endpointToInsert, retrievedGlobal);
}
Aggregations