Skip to content

Commit a7192a5

Browse files
Ant-hemaseure
authored andcommitted
Added: AATesting
1 parent 8374457 commit a7192a5

3 files changed

Lines changed: 80 additions & 2 deletions

File tree

algoliasearch-common/src/main/java/com/algolia/search/inputs/analytics/Variant.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.algolia.search.inputs.analytics;
22

3+
import com.algolia.search.objects.Query;
34
import com.fasterxml.jackson.annotation.JsonIgnore;
45
import com.fasterxml.jackson.annotation.JsonInclude;
56
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -23,6 +24,7 @@ public class Variant implements Serializable {
2324
private int noResultCount;
2425
private int searchCount;
2526
private int userCount;
27+
private Query customSearchParameters;
2628

2729
public Variant() {}
2830

@@ -135,4 +137,14 @@ public int getUserCount() {
135137
public void setUserCount(int userCount) {
136138
this.userCount = userCount;
137139
}
140+
141+
@JsonProperty
142+
public Query getCustomSearchParameters() {
143+
return customSearchParameters;
144+
}
145+
146+
@JsonProperty
147+
public void setCustomSearchParameters(Query customSearchParameters) {
148+
this.customSearchParameters = customSearchParameters;
149+
}
138150
}

algoliasearch-tests/src/test/java/com/algolia/search/integration/common/async/AsyncABTestingTest.java

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import com.algolia.search.inputs.analytics.ABTest;
1010
import com.algolia.search.inputs.analytics.Variant;
1111
import com.algolia.search.integration.common.ABTestingHelpersTest;
12+
import com.algolia.search.objects.IgnorePlurals;
13+
import com.algolia.search.objects.Query;
1214
import com.algolia.search.objects.tasks.async.AsyncTaskABTest;
1315
import com.algolia.search.responses.ABTests;
1416
import java.time.LocalDateTime;
@@ -64,7 +66,7 @@ public void createModifyAndDeleteABTests() throws Exception {
6466

6567
waitForCompletion(analytics.addABTest(abtest));
6668

67-
Boolean found = false;
69+
boolean found = false;
6870
while (!found) {
6971
abTests = analytics.getABTests(0, 10).get();
7072
found =
@@ -83,4 +85,35 @@ public void createModifyAndDeleteABTests() throws Exception {
8385
abTests = analytics.getABTests(0, 10).get();
8486
assertThat(abTests.getCount()).isEqualTo(0);
8587
}
88+
89+
@Test
90+
public void TestAATesting() throws Exception {
91+
AsyncAnalytics analytics = createAnalytics();
92+
AsyncIndex<AlgoliaObject> index = createIndex(AlgoliaObject.class);
93+
waitForCompletion(index.addObject(new AlgoliaObject("algolia", 1)));
94+
95+
LocalDateTime now = LocalDateTime.now();
96+
97+
Variant variantWithSearchParam = new Variant(index.getName(), 10, null);
98+
variantWithSearchParam.setCustomSearchParameters(
99+
new Query().setIgnorePlurals(IgnorePlurals.of(true)));
100+
101+
ABTest abtest =
102+
new ABTest(
103+
"AA_Testing",
104+
Arrays.asList(
105+
new Variant(index.getName(), 90, "a description"), variantWithSearchParam),
106+
now.plus(1, ChronoUnit.DAYS));
107+
108+
AsyncTaskABTest abTestTask = analytics.addABTest(abtest).get();
109+
110+
index.waitTask(abTestTask.getTaskID());
111+
112+
ABTest inserted = analytics.getABTest(abTestTask.abTestID).get();
113+
114+
ABTestingHelpersTest.compareABTests(abtest, inserted);
115+
assertThat(inserted.getVariants().get(1).getCustomSearchParameters().getIgnorePlurals())
116+
.isEqualTo(variantWithSearchParam.getCustomSearchParameters().getIgnorePlurals());
117+
waitForCompletion(analytics.deleteABTest(abTestTask.abTestID));
118+
}
86119
}

algoliasearch-tests/src/test/java/com/algolia/search/integration/common/sync/SyncABTestingTest.java

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import com.algolia.search.inputs.analytics.ABTest;
1111
import com.algolia.search.inputs.analytics.Variant;
1212
import com.algolia.search.integration.common.ABTestingHelpersTest;
13+
import com.algolia.search.objects.IgnorePlurals;
14+
import com.algolia.search.objects.Query;
1315
import com.algolia.search.objects.tasks.sync.TaskABTest;
1416
import com.algolia.search.responses.ABTests;
1517
import java.time.LocalDateTime;
@@ -77,10 +79,41 @@ public void createModifyAndDeleteABTests() throws AlgoliaException, InterruptedE
7779
assertThat(inserted.getStatus()).isEqualTo("stopped");
7880

7981
waitForCompletion(analytics.deleteABTest(inserted.getAbTestID()));
80-
Boolean isEmpty = false;
82+
boolean isEmpty = false;
8183
while (!isEmpty) {
8284
isEmpty = analytics.getABTests(0, 10).getCount() == 0;
8385
Thread.sleep(1000);
8486
}
8587
}
88+
89+
@Test
90+
public void TestAATesting() throws Exception {
91+
Analytics analytics = createAnalytics();
92+
Index<AlgoliaObject> index = createIndex(AlgoliaObject.class);
93+
waitForCompletion(index.addObject(new AlgoliaObject("algolia", 1)));
94+
95+
LocalDateTime now = LocalDateTime.now();
96+
97+
Variant variantWithSearchParam = new Variant(index.getName(), 10, null);
98+
variantWithSearchParam.setCustomSearchParameters(
99+
new Query().setIgnorePlurals(IgnorePlurals.of(true)));
100+
101+
ABTest abtest =
102+
new ABTest(
103+
"AA_Testing",
104+
Arrays.asList(
105+
new Variant(index.getName(), 90, "a description"), variantWithSearchParam),
106+
now.plus(1, ChronoUnit.DAYS));
107+
108+
TaskABTest abTestTask = analytics.addABTest(abtest);
109+
110+
index.waitTask(abTestTask.getTaskID());
111+
112+
ABTest inserted = analytics.getABTest(abTestTask.abTestID);
113+
114+
ABTestingHelpersTest.compareABTests(abtest, inserted);
115+
assertThat(inserted.getVariants().get(1).getCustomSearchParameters().getIgnorePlurals())
116+
.isEqualTo(variantWithSearchParam.getCustomSearchParameters().getIgnorePlurals());
117+
waitForCompletion(analytics.deleteABTest(abTestTask.abTestID));
118+
}
86119
}

0 commit comments

Comments
 (0)