Search in sources :

Example 51 with QuotaPolicy

use of org.wso2.carbon.apimgt.core.models.policy.QuotaPolicy in project carbon-apimgt by wso2.

the class APIMgtDAOTest method getSubscriptionPolicy.

private Policy getSubscriptionPolicy(String policyName) {
    SubscriptionPolicy policy = new SubscriptionPolicy(policyName);
    policy.setDisplayName(policyName);
    policy.setDescription("Subscription policy Description");
    policy.setTenantId(6);
    policy.setBillingPlan("FREE");
    policy.setGraphQLMaxDepth(5);
    policy.setGraphQLMaxComplexity(100);
    policy.setMonetizationPlan(APIConstants.Monetization.FIXED_RATE);
    policy.setMonetizationPlanProperties(new HashMap<String, String>());
    RequestCountLimit defaultLimit = new RequestCountLimit();
    defaultLimit.setTimeUnit("min");
    defaultLimit.setUnitTime(50);
    defaultLimit.setRequestCount(800);
    QuotaPolicy defaultQuotaPolicy = new QuotaPolicy();
    defaultQuotaPolicy.setLimit(defaultLimit);
    defaultQuotaPolicy.setType(PolicyConstants.REQUEST_COUNT_TYPE);
    policy.setDefaultQuotaPolicy(defaultQuotaPolicy);
    return policy;
}
Also used : RequestCountLimit(org.wso2.carbon.apimgt.api.model.policy.RequestCountLimit) SubscriptionPolicy(org.wso2.carbon.apimgt.api.model.policy.SubscriptionPolicy) QuotaPolicy(org.wso2.carbon.apimgt.api.model.policy.QuotaPolicy)

Example 52 with QuotaPolicy

use of org.wso2.carbon.apimgt.core.models.policy.QuotaPolicy in project carbon-apimgt by wso2.

the class APIMgtDAOTest method testUpdateAPIPolicy.

@Test
public void testUpdateAPIPolicy() throws APIManagementException {
    String policyName = "TestUpdateApiPolicy";
    APIPolicy policy = (APIPolicy) getPolicyAPILevelPerUser(policyName);
    apiMgtDAO.addAPIPolicy(policy);
    policy = apiMgtDAO.getAPIPolicy(policyName, -1234);
    policy.setDescription("New Description");
    ArrayList<Pipeline> pipelines = new ArrayList<Pipeline>();
    Pipeline p = new Pipeline();
    QuotaPolicy quotaPolicy = new QuotaPolicy();
    quotaPolicy.setType("requestCount");
    RequestCountLimit requestCountLimit = new RequestCountLimit();
    requestCountLimit.setTimeUnit("min");
    requestCountLimit.setUnitTime(50);
    requestCountLimit.setRequestCount(1000);
    quotaPolicy.setLimit(requestCountLimit);
    ArrayList<Condition> conditions = new ArrayList<Condition>();
    DateCondition dateCondition = new DateCondition();
    dateCondition.setSpecificDate("2016-03-03");
    conditions.add(dateCondition);
    HeaderCondition headerCondition1 = new HeaderCondition();
    headerCondition1.setHeader("User-Agent");
    headerCondition1.setValue("Chrome");
    conditions.add(headerCondition1);
    HeaderCondition headerCondition2 = new HeaderCondition();
    headerCondition2.setHeader("Accept-Ranges");
    headerCondition2.setValue("bytes");
    conditions.add(headerCondition2);
    QueryParameterCondition queryParameterCondition1 = new QueryParameterCondition();
    queryParameterCondition1.setParameter("test1");
    queryParameterCondition1.setValue("testValue1");
    conditions.add(queryParameterCondition1);
    QueryParameterCondition queryParameterCondition2 = new QueryParameterCondition();
    queryParameterCondition2.setParameter("x");
    queryParameterCondition2.setValue("abc");
    conditions.add(queryParameterCondition2);
    JWTClaimsCondition jwtClaimsCondition1 = new JWTClaimsCondition();
    jwtClaimsCondition1.setClaimUrl("test_url");
    jwtClaimsCondition1.setAttribute("test_attribute");
    conditions.add(jwtClaimsCondition1);
    p.setQuotaPolicy(quotaPolicy);
    p.setConditions(conditions);
    pipelines.add(p);
    policy.setPipelines(pipelines);
    apiMgtDAO.updateAPIPolicy(policy);
    APIPolicy apiPolicy = apiMgtDAO.getAPIPolicy(policyName, -1234);
    assertNotNull(apiPolicy);
    List<Pipeline> pipelineList = apiPolicy.getPipelines();
    assertNotNull(pipelineList);
    assertEquals(pipelineList.size(), pipelines.size());
}
Also used : DateRangeCondition(org.wso2.carbon.apimgt.api.model.policy.DateRangeCondition) IPCondition(org.wso2.carbon.apimgt.api.model.policy.IPCondition) QueryParameterCondition(org.wso2.carbon.apimgt.api.model.policy.QueryParameterCondition) DateCondition(org.wso2.carbon.apimgt.api.model.policy.DateCondition) HTTPVerbCondition(org.wso2.carbon.apimgt.api.model.policy.HTTPVerbCondition) HeaderCondition(org.wso2.carbon.apimgt.api.model.policy.HeaderCondition) Condition(org.wso2.carbon.apimgt.api.model.policy.Condition) JWTClaimsCondition(org.wso2.carbon.apimgt.api.model.policy.JWTClaimsCondition) RequestCountLimit(org.wso2.carbon.apimgt.api.model.policy.RequestCountLimit) JWTClaimsCondition(org.wso2.carbon.apimgt.api.model.policy.JWTClaimsCondition) HeaderCondition(org.wso2.carbon.apimgt.api.model.policy.HeaderCondition) ArrayList(java.util.ArrayList) QueryParameterCondition(org.wso2.carbon.apimgt.api.model.policy.QueryParameterCondition) Pipeline(org.wso2.carbon.apimgt.api.model.policy.Pipeline) QuotaPolicy(org.wso2.carbon.apimgt.api.model.policy.QuotaPolicy) APIPolicy(org.wso2.carbon.apimgt.api.model.policy.APIPolicy) DateCondition(org.wso2.carbon.apimgt.api.model.policy.DateCondition) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 53 with QuotaPolicy

use of org.wso2.carbon.apimgt.core.models.policy.QuotaPolicy in project carbon-apimgt by wso2.

the class APIMgtDAOTest method getApplicationPolicy.

private Policy getApplicationPolicy(String policyName) {
    ApplicationPolicy policy = new ApplicationPolicy(policyName);
    policy.setDescription(policyName);
    policy.setDescription("Application policy Description");
    policy.setTenantId(4);
    BandwidthLimit defaultLimit = new BandwidthLimit();
    defaultLimit.setTimeUnit("min");
    defaultLimit.setUnitTime(5);
    defaultLimit.setDataAmount(600);
    defaultLimit.setDataUnit("KB");
    QuotaPolicy defaultQuotaPolicy = new QuotaPolicy();
    defaultQuotaPolicy.setLimit(defaultLimit);
    defaultQuotaPolicy.setType(PolicyConstants.BANDWIDTH_TYPE);
    policy.setDefaultQuotaPolicy(defaultQuotaPolicy);
    return policy;
}
Also used : ApplicationPolicy(org.wso2.carbon.apimgt.api.model.policy.ApplicationPolicy) QuotaPolicy(org.wso2.carbon.apimgt.api.model.policy.QuotaPolicy) BandwidthLimit(org.wso2.carbon.apimgt.api.model.policy.BandwidthLimit)

Example 54 with QuotaPolicy

use of org.wso2.carbon.apimgt.core.models.policy.QuotaPolicy in project carbon-apimgt by wso2.

the class APIMgtDAOTest method getPolicyAPILevelPerUser.

private Policy getPolicyAPILevelPerUser(String policyName) {
    APIPolicy policy = new APIPolicy(policyName);
    policy.setUserLevel(PolicyConstants.PER_USER);
    policy.setDescription("Description");
    policy.setTenantId(-1234);
    BandwidthLimit defaultLimit = new BandwidthLimit();
    defaultLimit.setTimeUnit("min");
    defaultLimit.setUnitTime(5);
    defaultLimit.setDataAmount(400);
    defaultLimit.setDataUnit("MB");
    QuotaPolicy defaultQuotaPolicy = new QuotaPolicy();
    defaultQuotaPolicy.setLimit(defaultLimit);
    defaultQuotaPolicy.setType(PolicyConstants.BANDWIDTH_TYPE);
    policy.setDefaultQuotaPolicy(defaultQuotaPolicy);
    List<Pipeline> pipelines;
    QuotaPolicy quotaPolicy;
    List<Condition> condition;
    BandwidthLimit bandwidthLimit;
    RequestCountLimit requestCountLimit;
    pipelines = new ArrayList<Pipeline>();
    // /////////pipeline item 1 start//////
    Pipeline p1 = new Pipeline();
    quotaPolicy = new QuotaPolicy();
    quotaPolicy.setType(PolicyConstants.BANDWIDTH_TYPE);
    bandwidthLimit = new BandwidthLimit();
    bandwidthLimit.setTimeUnit("min");
    bandwidthLimit.setUnitTime(5);
    bandwidthLimit.setDataAmount(100);
    bandwidthLimit.setDataUnit("GB");
    quotaPolicy.setLimit(bandwidthLimit);
    condition = new ArrayList<Condition>();
    HTTPVerbCondition verbCond = new HTTPVerbCondition();
    verbCond.setHttpVerb("POST");
    condition.add(verbCond);
    IPCondition ipCondition = new IPCondition(PolicyConstants.IP_SPECIFIC_TYPE);
    ipCondition.setSpecificIP("127.0.0.1");
    condition.add(ipCondition);
    DateRangeCondition dateRangeCondition = new DateRangeCondition();
    dateRangeCondition.setStartingDate("2016-01-03");
    dateRangeCondition.setEndingDate("2016-01-31");
    condition.add(dateRangeCondition);
    p1.setQuotaPolicy(quotaPolicy);
    p1.setConditions(condition);
    pipelines.add(p1);
    // /////////pipeline item 1 end//////
    // /////////pipeline item 2 start//////
    Pipeline p2 = new Pipeline();
    quotaPolicy = new QuotaPolicy();
    quotaPolicy.setType("requestCount");
    requestCountLimit = new RequestCountLimit();
    requestCountLimit.setTimeUnit("min");
    requestCountLimit.setUnitTime(50);
    requestCountLimit.setRequestCount(1000);
    quotaPolicy.setLimit(requestCountLimit);
    List<Condition> condition2 = new ArrayList<Condition>();
    DateCondition dateCondition = new DateCondition();
    dateCondition.setSpecificDate("2016-01-02");
    condition2.add(dateCondition);
    HeaderCondition headerCondition1 = new HeaderCondition();
    headerCondition1.setHeader("User-Agent");
    headerCondition1.setValue("Firefox");
    condition2.add(headerCondition1);
    HeaderCondition headerCondition2 = new HeaderCondition();
    headerCondition2.setHeader("Accept-Ranges");
    headerCondition2.setValue("bytes");
    condition2.add(headerCondition2);
    QueryParameterCondition queryParameterCondition1 = new QueryParameterCondition();
    queryParameterCondition1.setParameter("test1");
    queryParameterCondition1.setValue("testValue1");
    condition2.add(queryParameterCondition1);
    QueryParameterCondition queryParameterCondition2 = new QueryParameterCondition();
    queryParameterCondition2.setParameter("test2");
    queryParameterCondition2.setValue("testValue2");
    condition2.add(queryParameterCondition2);
    JWTClaimsCondition jwtClaimsCondition1 = new JWTClaimsCondition();
    jwtClaimsCondition1.setClaimUrl("test_url");
    jwtClaimsCondition1.setAttribute("test_attribute");
    condition2.add(jwtClaimsCondition1);
    JWTClaimsCondition jwtClaimsCondition2 = new JWTClaimsCondition();
    jwtClaimsCondition2.setClaimUrl("test_url");
    jwtClaimsCondition2.setAttribute("test_attribute");
    condition2.add(jwtClaimsCondition2);
    IPCondition ipRangeCondition = new IPCondition(PolicyConstants.IP_RANGE_TYPE);
    ipCondition.setStartingIP("127.0.0.1");
    ipCondition.setEndingIP("127.0.0.12");
    condition2.add(ipRangeCondition);
    p2.setQuotaPolicy(quotaPolicy);
    p2.setConditions(condition2);
    pipelines.add(p2);
    // /////////pipeline item 2 end//////
    policy.setPipelines(pipelines);
    return policy;
}
Also used : DateRangeCondition(org.wso2.carbon.apimgt.api.model.policy.DateRangeCondition) IPCondition(org.wso2.carbon.apimgt.api.model.policy.IPCondition) QueryParameterCondition(org.wso2.carbon.apimgt.api.model.policy.QueryParameterCondition) DateCondition(org.wso2.carbon.apimgt.api.model.policy.DateCondition) HTTPVerbCondition(org.wso2.carbon.apimgt.api.model.policy.HTTPVerbCondition) HeaderCondition(org.wso2.carbon.apimgt.api.model.policy.HeaderCondition) Condition(org.wso2.carbon.apimgt.api.model.policy.Condition) JWTClaimsCondition(org.wso2.carbon.apimgt.api.model.policy.JWTClaimsCondition) RequestCountLimit(org.wso2.carbon.apimgt.api.model.policy.RequestCountLimit) JWTClaimsCondition(org.wso2.carbon.apimgt.api.model.policy.JWTClaimsCondition) HeaderCondition(org.wso2.carbon.apimgt.api.model.policy.HeaderCondition) DateRangeCondition(org.wso2.carbon.apimgt.api.model.policy.DateRangeCondition) ArrayList(java.util.ArrayList) QueryParameterCondition(org.wso2.carbon.apimgt.api.model.policy.QueryParameterCondition) Pipeline(org.wso2.carbon.apimgt.api.model.policy.Pipeline) HTTPVerbCondition(org.wso2.carbon.apimgt.api.model.policy.HTTPVerbCondition) IPCondition(org.wso2.carbon.apimgt.api.model.policy.IPCondition) QuotaPolicy(org.wso2.carbon.apimgt.api.model.policy.QuotaPolicy) APIPolicy(org.wso2.carbon.apimgt.api.model.policy.APIPolicy) BandwidthLimit(org.wso2.carbon.apimgt.api.model.policy.BandwidthLimit) DateCondition(org.wso2.carbon.apimgt.api.model.policy.DateCondition)

Example 55 with QuotaPolicy

use of org.wso2.carbon.apimgt.core.models.policy.QuotaPolicy in project carbon-apimgt by wso2.

the class TestUtils method getUniqueSubscriptionPolicyWithBandwidthLimit.

/**
 * Return unique subscription policy with Bandwidth limit
 *
 * @return unique subscription policy
 */
public static SubscriptionPolicy getUniqueSubscriptionPolicyWithBandwidthLimit() {
    SubscriptionPolicy subscriptionPolicy = new SubscriptionPolicy(UUID.randomUUID().toString());
    Limit limit = new BandwidthLimit();
    limit.setTimeUnit("seconds");
    limit.setUnitTime(10);
    QuotaPolicy quotaPolicy = new QuotaPolicy();
    quotaPolicy.setLimit(limit);
    subscriptionPolicy.setDefaultQuotaPolicy(quotaPolicy);
    return subscriptionPolicy;
}
Also used : SubscriptionPolicy(org.wso2.carbon.apimgt.api.model.policy.SubscriptionPolicy) QuotaPolicy(org.wso2.carbon.apimgt.api.model.policy.QuotaPolicy) BandwidthLimit(org.wso2.carbon.apimgt.api.model.policy.BandwidthLimit) RequestCountLimit(org.wso2.carbon.apimgt.api.model.policy.RequestCountLimit) Limit(org.wso2.carbon.apimgt.api.model.policy.Limit) BandwidthLimit(org.wso2.carbon.apimgt.api.model.policy.BandwidthLimit)

Aggregations

QuotaPolicy (org.wso2.carbon.apimgt.core.models.policy.QuotaPolicy)34 QuotaPolicy (org.wso2.carbon.apimgt.api.model.policy.QuotaPolicy)27 RequestCountLimit (org.wso2.carbon.apimgt.api.model.policy.RequestCountLimit)24 RequestCountLimit (org.wso2.carbon.apimgt.core.models.policy.RequestCountLimit)23 BandwidthLimit (org.wso2.carbon.apimgt.core.models.policy.BandwidthLimit)16 ArrayList (java.util.ArrayList)13 BandwidthLimit (org.wso2.carbon.apimgt.api.model.policy.BandwidthLimit)12 SubscriptionPolicy (org.wso2.carbon.apimgt.api.model.policy.SubscriptionPolicy)12 APIPolicy (org.wso2.carbon.apimgt.core.models.policy.APIPolicy)10 APIPolicy (org.wso2.carbon.apimgt.api.model.policy.APIPolicy)9 SubscriptionPolicy (org.wso2.carbon.apimgt.core.models.policy.SubscriptionPolicy)9 EventCountLimit (org.wso2.carbon.apimgt.api.model.policy.EventCountLimit)7 Test (org.testng.annotations.Test)6 ApplicationPolicy (org.wso2.carbon.apimgt.api.model.policy.ApplicationPolicy)6 ApplicationPolicy (org.wso2.carbon.apimgt.core.models.policy.ApplicationPolicy)6 ApiMgtDAO (org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO)6 Test (org.junit.Test)5 Matchers.anyString (org.mockito.Matchers.anyString)5 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)5 Pipeline (org.wso2.carbon.apimgt.api.model.policy.Pipeline)5