Search in sources :

Example 91 with API

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));
}
Also used : ArrayList(java.util.ArrayList) APIComparator(org.wso2.carbon.apimgt.core.util.APIComparator) CompositeAPI(org.wso2.carbon.apimgt.core.models.CompositeAPI) API(org.wso2.carbon.apimgt.core.models.API) ApiDAO(org.wso2.carbon.apimgt.core.dao.ApiDAO) HashSet(java.util.HashSet) Test(org.testng.annotations.Test)

Example 92 with API

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"));
}
Also used : CompositeAPI(org.wso2.carbon.apimgt.core.models.CompositeAPI) API(org.wso2.carbon.apimgt.core.models.API) ApiDAO(org.wso2.carbon.apimgt.core.dao.ApiDAO) Test(org.testng.annotations.Test)

Example 93 with API

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);
}
Also used : HashMap(java.util.HashMap) CompositeAPI(org.wso2.carbon.apimgt.core.models.CompositeAPI) API(org.wso2.carbon.apimgt.core.models.API) ApiDAO(org.wso2.carbon.apimgt.core.dao.ApiDAO) HashSet(java.util.HashSet) Test(org.testng.annotations.Test)

Example 94 with API

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());
}
Also used : ArrayList(java.util.ArrayList) APIComparator(org.wso2.carbon.apimgt.core.util.APIComparator) CompositeAPI(org.wso2.carbon.apimgt.core.models.CompositeAPI) API(org.wso2.carbon.apimgt.core.models.API) ApiDAO(org.wso2.carbon.apimgt.core.dao.ApiDAO) Endpoint(org.wso2.carbon.apimgt.core.models.Endpoint) Test(org.testng.annotations.Test)

Example 95 with API

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));
}
Also used : CompositeAPI(org.wso2.carbon.apimgt.core.models.CompositeAPI) API(org.wso2.carbon.apimgt.core.models.API) ApiDAO(org.wso2.carbon.apimgt.core.dao.ApiDAO) Test(org.testng.annotations.Test)

Aggregations

API (org.wso2.carbon.apimgt.core.models.API)359 Test (org.testng.annotations.Test)320 ApiDAO (org.wso2.carbon.apimgt.core.dao.ApiDAO)253 APIManagementException (org.wso2.carbon.apimgt.core.exception.APIManagementException)179 APIMgtDAOException (org.wso2.carbon.apimgt.core.exception.APIMgtDAOException)154 CompositeAPI (org.wso2.carbon.apimgt.core.models.CompositeAPI)132 HashMap (java.util.HashMap)129 ArrayList (java.util.ArrayList)112 APIGateway (org.wso2.carbon.apimgt.core.api.APIGateway)106 Test (org.junit.Test)83 APIStore (org.wso2.carbon.apimgt.core.api.APIStore)83 APIPublisher (org.wso2.carbon.apimgt.core.api.APIPublisher)82 SQLException (java.sql.SQLException)75 APILifecycleManager (org.wso2.carbon.apimgt.core.api.APILifecycleManager)75 ErrorDTO (org.wso2.carbon.apimgt.rest.api.common.dto.ErrorDTO)70 GatewaySourceGenerator (org.wso2.carbon.apimgt.core.api.GatewaySourceGenerator)65 APIBuilder (org.wso2.carbon.apimgt.core.models.API.APIBuilder)61 WorkflowResponse (org.wso2.carbon.apimgt.core.api.WorkflowResponse)60 Connection (java.sql.Connection)58 Response (javax.ws.rs.core.Response)58