use of org.wso2.carbon.apimgt.core.models.API in project carbon-apimgt by wso2.
the class ApiDAOImplIT method testGetAPIsWhenUserIsProvider.
@Test(description = "Tests getting the APIs when the user is the provider of the API")
public void testGetAPIsWhenUserIsProvider() throws Exception {
ApiDAO apiDAO = DAOFactory.getApiDAO();
Set<String> rolesOfUser = new HashSet<>();
// The ID here is the group ID of the provider of the API. This ID is not assigned permissions for the API
rolesOfUser.add(ALTERNATIVE_USER_ROLE_ID);
// But this user is the provider of the API
List<API> apiList = apiDAO.getAPIs(rolesOfUser, ADMIN);
Assert.assertTrue(apiList.isEmpty());
API.APIBuilder builder = SampleTestObjectCreator.createDefaultAPI();
API api1 = builder.build();
testAddGetEndpoint();
apiDAO.addAPI(api1);
apiList = apiDAO.getAPIs(rolesOfUser, ADMIN);
List<API> expectedAPIs = new ArrayList<>();
expectedAPIs.add(SampleTestObjectCreator.copyAPISummary(api1));
// The provider will have all permissions for the API by default
Assert.assertTrue(apiList.size() == 1);
Assert.assertTrue(APIUtils.isListsEqualIgnoreOrder(apiList, expectedAPIs, new APIComparator()), TestUtil.printDiff(apiList, expectedAPIs));
}
use of org.wso2.carbon.apimgt.core.models.API in project carbon-apimgt by wso2.
the class ApiDAOImplIT method testIsAPINameExists.
@Test
public void testIsAPINameExists() throws Exception {
ApiDAO apiDAO = DAOFactory.getApiDAO();
testAddGetEndpoint();
API api = SampleTestObjectCreator.createUniqueAPI().build();
apiDAO.addAPI(api);
Assert.assertTrue(apiDAO.isAPINameExists(api.getName(), api.getProvider()));
Assert.assertFalse(apiDAO.isAPINameExists("Not-Exists", api.getProvider()));
final String upperCaseName = "CAPITAL";
// Add API with upper case name
api = SampleTestObjectCreator.createUniqueAPI().name(upperCaseName).build();
apiDAO.addAPI(api);
// Check with upper case format
Assert.assertTrue(apiDAO.isAPINameExists(upperCaseName, api.getProvider()));
// Check with lower case format
Assert.assertTrue(apiDAO.isAPINameExists(upperCaseName.toLowerCase(Locale.ENGLISH), api.getProvider()));
// Check with mixed case format
Assert.assertTrue(apiDAO.isAPINameExists(upperCaseName.substring(0, 3) + upperCaseName.substring(3).toLowerCase(Locale.ENGLISH), api.getProvider()));
final String lowerCaseName = "simple";
// Add API with upper case name
api = SampleTestObjectCreator.createUniqueAPI().name(lowerCaseName).build();
apiDAO.addAPI(api);
// Check with lower case format
Assert.assertTrue(apiDAO.isAPINameExists(lowerCaseName, api.getProvider()));
// Check with upper case format
Assert.assertTrue(apiDAO.isAPINameExists(lowerCaseName.toUpperCase(Locale.ENGLISH), api.getProvider()));
// Check with mixed case format
Assert.assertTrue(apiDAO.isAPINameExists(lowerCaseName.substring(0, 3) + lowerCaseName.substring(3).toUpperCase(Locale.ENGLISH), api.getProvider()));
// Create same API for different providers and check for existence
final String sameName = "same";
API api1 = SampleTestObjectCreator.createUniqueAPI().name(sameName).build();
apiDAO.addAPI(api1);
API api2 = SampleTestObjectCreator.createUniqueAPI().name(sameName).build();
apiDAO.addAPI(api2);
Assert.assertTrue(apiDAO.isAPINameExists(sameName, api1.getProvider()));
Assert.assertTrue(apiDAO.isAPINameExists(sameName, api2.getProvider()));
Assert.assertFalse(apiDAO.isAPINameExists(sameName, "no_such_provider"));
}
use of org.wso2.carbon.apimgt.core.models.API in project carbon-apimgt by wso2.
the class ApiDAOImplIT method testAttributeSearchAPIs.
@Test(description = "Retrieve summary of paginated data of all available APIs that match the given search criteria")
public void testAttributeSearchAPIs() throws Exception {
ApiDAO apiDAO = DAOFactory.getApiDAO();
testAddGetEndpoint();
API api = SampleTestObjectCreator.createDefaultAPI().build();
apiDAO.addAPI(api);
Set<String> roles = new HashSet<>();
Map<String, String> attributeMap = new HashMap<>();
attributeMap.put("name", api.getName());
List<API> apiList = apiDAO.attributeSearchAPIs(roles, api.getProvider(), attributeMap, 0, 2);
Assert.assertTrue(apiList.size() > 0);
}
use of org.wso2.carbon.apimgt.core.models.API 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.models.API 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));
}
Aggregations