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;
}
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());
}
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;
}
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;
}
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;
}
Aggregations