@Test( groups = {"wso2.am"}, description = "API Life cycle test case") public void testDAOTestCase() throws Exception { String APIName = "DAOTestAPI"; String APIContext = "DAOTestAPI"; String tags = "youtube, video, media"; String url = "http://gdata.youtube.com/feeds/api/standardfeeds"; String description = "This is test API create by API manager integration test"; String APIVersion = "1.0.0"; String apiContextAddedValue = APIContext + "/" + APIVersion; APIRequest apiRequest = new APIRequest(APIName, APIContext, new URL(url)); apiRequest.setTags(tags); apiRequest.setDescription(description); apiRequest.setVersion(APIVersion); apiRequest.setProvider(providerName); apiPublisher.addAPI(apiRequest); apiPublisher.deleteAPI(APIName, APIVersion, providerName); apiPublisher.addAPI(apiRequest); APIBean apiBean = APIMTestCaseUtils.getAPIBeanFromHttpResponse(apiPublisher.getAPI(APIName, providerName)); APILifeCycleStateRequest updateRequest = new APILifeCycleStateRequest(APIName, providerName, APILifeCycleState.PUBLISHED); apiPublisher.changeAPILifeCycleStatus(updateRequest); // Test API properties assertEquals(apiBean.getId().getApiName(), APIName, "API Name mismatch"); assertTrue(apiBean.getContext().contains(apiContextAddedValue), "API context mismatch"); assertEquals(apiBean.getId().getVersion(), APIVersion, "API version mismatch"); assertEquals(apiBean.getId().getProviderName(), providerName, "Provider Name mismatch"); for (String tag : apiBean.getTags()) { assertTrue(tags.contains(tag), "API tag data mismatched"); } assertEquals(apiBean.getDescription(), description, "API description mismatch"); apiStore.addApplication("DAOTestAPI-Application", "Gold", "", "this-is-test"); SubscriptionRequest subscriptionRequest = new SubscriptionRequest( APIName, storeContext.getContextTenant().getContextUser().getUserName()); subscriptionRequest.setApplicationName("DAOTestAPI-Application"); apiStore.subscribe(subscriptionRequest); APPKeyRequestGenerator generateAppKeyRequest = new APPKeyRequestGenerator("DAOTestAPI-Application"); String responseString = apiStore.generateApplicationKey(generateAppKeyRequest).getData(); JSONObject response = new JSONObject(responseString); String accessToken = response.getJSONObject("data").getJSONObject("key").get("accessToken").toString(); Map<String, String> requestHeaders = new HashMap<String, String>(); requestHeaders.put("Authorization", "Bearer " + accessToken); Thread.sleep(2000); }
@BeforeClass(alwaysRun = true) public void setEnvironment() throws Exception { super.init(userMode); String publisherURLHttp = publisherUrls.getWebAppURLHttp(); String storeURLHttp = storeUrls.getWebAppURLHttp(); apiStore = new APIStoreRestClient(storeURLHttp); APIPublisherRestClient apiPublisher = new APIPublisherRestClient(publisherURLHttp); String APIName = "APIGetAllSubscriptionsTestAPI"; String APIContext = "getAllSubscriptionsTestAPI"; String tags = "youtube, video, media"; String url = "http://gdata.youtube.com/feeds/api/standardfeeds"; String description = "This is test API create by API manager integration test"; String providerName = "admin"; String APIVersion = "1.0.0"; apiPublisher.login( publisherContext.getContextTenant().getContextUser().getUserName(), publisherContext.getContextTenant().getContextUser().getPassword()); APIRequest apiRequest = new APIRequest(APIName, APIContext, new URL(url)); apiRequest.setTags(tags); apiRequest.setDescription(description); apiRequest.setVersion(APIVersion); apiRequest.setVisibility("restricted"); apiRequest.setRoles("admin"); apiRequest.setTiersCollection(SILVER); apiRequest.setTier(SILVER); apiPublisher.addAPI(apiRequest); APILifeCycleStateRequest updateRequest = new APILifeCycleStateRequest(APIName, providerName, APILifeCycleState.PUBLISHED); apiPublisher.changeAPILifeCycleStatus(updateRequest); apiStore.login( storeContext.getContextTenant().getContextUser().getUserName(), storeContext.getContextTenant().getContextUser().getPassword()); for (int i = 0; i < numberOfApplications; i++) { String applicationName = applicationNamePrefix + i; apiStore.addApplication( applicationName, APIMIntegrationConstants.APPLICATION_TIER.DEFAULT_APP_POLICY_FIFTY_REQ_PER_MIN, "", "this-is-test"); SubscriptionRequest subscriptionRequest = new SubscriptionRequest( APIName, storeContext.getContextTenant().getContextUser().getUserName()); subscriptionRequest.setApplicationName(applicationName); subscriptionRequest.setTier(SILVER); apiStore.subscribe(subscriptionRequest); APPKeyRequestGenerator generateAppKeyRequest = new APPKeyRequestGenerator(applicationName); String responseString = apiStore.generateApplicationKey(generateAppKeyRequest).getData(); JSONObject response = new JSONObject(responseString); String error = response.getString("error"); if ("true".equals(error)) { throw new Exception("Unable to generate the tokens. Hence unable to execute the test case"); } } Thread.sleep(60000); }