Search in sources :

Example 11 with Condition

use of com.optimizely.ab.config.audience.Condition in project java-sdk by optimizely.

the class ProjectConfigTestUtils method generateValidProjectConfigV2.

private static ProjectConfig generateValidProjectConfigV2() {
    List<Experiment> experiments = asList(new Experiment("223", "etag1", "Running", "1", singletonList("100"), asList(new Variation("276", "vtag1"), new Variation("277", "vtag2")), Collections.singletonMap("testUser1", "vtag1"), asList(new TrafficAllocation("276", 3500), new TrafficAllocation("277", 9000)), ""), new Experiment("118", "etag2", "Not started", "2", singletonList("100"), asList(new Variation("278", "vtag3"), new Variation("279", "vtag4")), Collections.singletonMap("testUser3", "vtag3"), asList(new TrafficAllocation("278", 4500), new TrafficAllocation("279", 9000)), ""), new Experiment("119", "etag3", "Not started", null, singletonList("100"), asList(new Variation("280", "vtag5"), new Variation("281", "vtag6")), Collections.singletonMap("testUser4", "vtag5"), asList(new TrafficAllocation("280", 4500), new TrafficAllocation("281", 9000)), ""));
    List<Attribute> attributes = singletonList(new Attribute("134", "browser_type"));
    List<String> singleExperimentId = singletonList("223");
    List<String> multipleExperimentIds = asList("118", "223");
    List<EventType> events = asList(new EventType("971", "clicked_cart", singleExperimentId), new EventType("098", "Total Revenue", singleExperimentId), new EventType("099", "clicked_purchase", multipleExperimentIds), new EventType("100", "no_running_experiments", singletonList("118")));
    List<Condition> userAttributes = new ArrayList<Condition>();
    userAttributes.add(new UserAttribute("browser_type", "custom_dimension", "firefox"));
    OrCondition orInner = new OrCondition(userAttributes);
    NotCondition notCondition = new NotCondition(orInner);
    List<Condition> outerOrList = new ArrayList<Condition>();
    outerOrList.add(notCondition);
    OrCondition orOuter = new OrCondition(outerOrList);
    List<Condition> andList = new ArrayList<Condition>();
    andList.add(orOuter);
    AndCondition andCondition = new AndCondition(andList);
    List<Audience> audiences = singletonList(new Audience("100", "not_firefox_users", andCondition));
    Map<String, String> userIdToVariationKeyMap = new HashMap<String, String>();
    userIdToVariationKeyMap.put("testUser1", "e1_vtag1");
    userIdToVariationKeyMap.put("testUser2", "e1_vtag2");
    List<Experiment> randomGroupExperiments = asList(new Experiment("301", "group_etag2", "Running", "3", singletonList("100"), asList(new Variation("282", "e2_vtag1"), new Variation("283", "e2_vtag2")), Collections.<String, String>emptyMap(), asList(new TrafficAllocation("282", 5000), new TrafficAllocation("283", 10000)), "42"), new Experiment("300", "group_etag1", "Running", "4", singletonList("100"), asList(new Variation("280", "e1_vtag1"), new Variation("281", "e1_vtag2")), userIdToVariationKeyMap, asList(new TrafficAllocation("280", 3000), new TrafficAllocation("281", 10000)), "42"));
    List<Experiment> overlappingGroupExperiments = asList(new Experiment("302", "overlapping_etag1", "Running", "5", singletonList("100"), asList(new Variation("284", "e1_vtag1"), new Variation("285", "e1_vtag2")), userIdToVariationKeyMap, asList(new TrafficAllocation("284", 1500), new TrafficAllocation("285", 3000)), "43"));
    Group randomPolicyGroup = new Group("42", "random", randomGroupExperiments, asList(new TrafficAllocation("300", 3000), new TrafficAllocation("301", 9000), new TrafficAllocation("", 10000)));
    Group overlappingPolicyGroup = new Group("43", "overlapping", overlappingGroupExperiments, Collections.<TrafficAllocation>emptyList());
    List<Group> groups = asList(randomPolicyGroup, overlappingPolicyGroup);
    return new ProjectConfig("789", "1234", "2", "42", groups, experiments, attributes, events, audiences);
}
Also used : Condition(com.optimizely.ab.config.audience.Condition) OrCondition(com.optimizely.ab.config.audience.OrCondition) NotCondition(com.optimizely.ab.config.audience.NotCondition) AndCondition(com.optimizely.ab.config.audience.AndCondition) NotCondition(com.optimizely.ab.config.audience.NotCondition) UserAttribute(com.optimizely.ab.config.audience.UserAttribute) Audience(com.optimizely.ab.config.audience.Audience) HashMap(java.util.HashMap) UserAttribute(com.optimizely.ab.config.audience.UserAttribute) ArrayList(java.util.ArrayList) AndCondition(com.optimizely.ab.config.audience.AndCondition) OrCondition(com.optimizely.ab.config.audience.OrCondition)

Aggregations

AndCondition (com.optimizely.ab.config.audience.AndCondition)11 Condition (com.optimizely.ab.config.audience.Condition)11 NotCondition (com.optimizely.ab.config.audience.NotCondition)11 OrCondition (com.optimizely.ab.config.audience.OrCondition)11 ArrayList (java.util.ArrayList)10 UserAttribute (com.optimizely.ab.config.audience.UserAttribute)7 Audience (com.optimizely.ab.config.audience.Audience)6 HashMap (java.util.HashMap)3 List (java.util.List)3 JsonObject (com.google.gson.JsonObject)2 JSONArray (org.json.JSONArray)2 JSONObject (org.json.JSONObject)2 JSONArray (org.json.simple.JSONArray)2 JSONObject (org.json.simple.JSONObject)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 Gson (com.google.gson.Gson)1 JsonElement (com.google.gson.JsonElement)1 JsonParser (com.google.gson.JsonParser)1 LinkedTreeMap (com.google.gson.internal.LinkedTreeMap)1