Skip to content

Commit d46c832

Browse files
committed
test(synonyms): add tests for synonym sets
1 parent 4a8a037 commit d46c832

File tree

2 files changed

+171
-0
lines changed

2 files changed

+171
-0
lines changed
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package org.typesense.api;
2+
3+
import org.junit.jupiter.api.AfterEach;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import org.junit.jupiter.api.Test;
6+
import org.typesense.model.SynonymItemSchema;
7+
import org.typesense.model.SynonymSetCreateSchema;
8+
import org.typesense.model.SynonymSetSchema;
9+
import org.typesense.model.SynonymSetDeleteSchema;
10+
11+
import java.util.ArrayList;
12+
import java.util.List;
13+
14+
import static org.junit.jupiter.api.Assertions.*;
15+
16+
class SynonymSetTest {
17+
18+
private Client client;
19+
private Helper helper;
20+
private String synonymSetName;
21+
22+
@BeforeEach
23+
void setUp() throws Exception {
24+
helper = new Helper();
25+
client = helper.getClient();
26+
27+
if (!Helper.isV30OrAbove(client)) {
28+
org.junit.jupiter.api.Assumptions.assumeTrue(false, "Skipping test - requires Typesense v30 or above");
29+
}
30+
31+
helper.teardown();
32+
helper.createTestCollection();
33+
synonymSetName = "test-synonym-set-" + System.currentTimeMillis();
34+
}
35+
36+
@AfterEach
37+
void tearDown() throws Exception {
38+
try {
39+
client.synonymSet(synonymSetName).delete();
40+
} catch (Exception e) {
41+
}
42+
helper.teardown();
43+
}
44+
45+
@Test
46+
void testRetrieve() throws Exception {
47+
SynonymSetCreateSchema synonymSetData = helper.createTestSynonymSetData();
48+
client.synonymSets().upsert(synonymSetName, synonymSetData);
49+
50+
SynonymSetCreateSchema result = client.synonymSet(synonymSetName).retrieve();
51+
52+
assertNotNull(result);
53+
assertEquals(1, result.getItems().size());
54+
assertEquals("dummy", result.getItems().get(0).getId());
55+
assertEquals(List.of("foo", "bar", "baz"), result.getItems().get(0).getSynonyms());
56+
}
57+
58+
@Test
59+
void testUpdate() throws Exception {
60+
SynonymSetCreateSchema originalData = helper.createTestSynonymSetData();
61+
client.synonymSets().upsert(synonymSetName, originalData);
62+
63+
SynonymSetCreateSchema updatedData = new SynonymSetCreateSchema();
64+
List<SynonymItemSchema> items = new ArrayList<>();
65+
SynonymItemSchema item = new SynonymItemSchema();
66+
item.setId("dummy");
67+
item.setSynonyms(List.of("foo", "bar", "baz", "qux"));
68+
items.add(item);
69+
updatedData.setItems(items);
70+
71+
SynonymSetSchema result = client.synonymSet(synonymSetName).upsert(updatedData);
72+
73+
assertEquals(synonymSetName, result.getName());
74+
assertEquals(1, result.getItems().size());
75+
assertEquals("dummy", result.getItems().get(0).getId());
76+
assertEquals(List.of("foo", "bar", "baz", "qux"), result.getItems().get(0).getSynonyms());
77+
}
78+
79+
@Test
80+
void testDelete() throws Exception {
81+
SynonymSetCreateSchema synonymSetData = helper.createTestSynonymSetData();
82+
client.synonymSets().upsert(synonymSetName, synonymSetData);
83+
84+
SynonymSetDeleteSchema result = client.synonymSet(synonymSetName).delete();
85+
86+
assertEquals(synonymSetName, result.getName());
87+
88+
assertThrows(Exception.class, () -> {
89+
client.synonymSet(synonymSetName).retrieve();
90+
});
91+
}
92+
}
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package org.typesense.api;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import org.junit.jupiter.api.AfterEach;
6+
import org.junit.jupiter.api.BeforeEach;
7+
import org.junit.jupiter.api.Test;
8+
import org.typesense.model.SynonymItemSchema;
9+
import org.typesense.model.SynonymSetCreateSchema;
10+
import org.typesense.model.SynonymSetSchema;
11+
12+
import static org.junit.jupiter.api.Assertions.*;
13+
14+
class SynonymSetsTest {
15+
16+
private Client client;
17+
private Helper helper;
18+
private String synonymSetName;
19+
20+
@BeforeEach
21+
void setUp() throws Exception {
22+
helper = new Helper();
23+
client = helper.getClient();
24+
25+
if (!Helper.isV30OrAbove(client)) {
26+
org.junit.jupiter.api.Assumptions.assumeTrue(false, "Skipping test - requires Typesense v30 or above");
27+
}
28+
29+
helper.teardown();
30+
helper.createTestCollection();
31+
synonymSetName = "test-synonym-set-" + System.currentTimeMillis();
32+
}
33+
34+
@AfterEach
35+
void tearDown() throws Exception {
36+
try {
37+
client.synonymSet(synonymSetName).delete();
38+
} catch (Exception e) {
39+
}
40+
helper.teardown();
41+
}
42+
43+
@Test
44+
void testUpsert() throws Exception {
45+
SynonymSetCreateSchema synonymSetData = helper.createTestSynonymSetData();
46+
47+
SynonymSetSchema result = client.synonymSets().upsert(synonymSetName, synonymSetData);
48+
49+
assertEquals(synonymSetName, result.getName());
50+
assertEquals(1, result.getItems().size());
51+
assertEquals("dummy", result.getItems().get(0).getId());
52+
assertEquals(List.of("foo", "bar", "baz"), result.getItems().get(0).getSynonyms());
53+
}
54+
55+
@Test
56+
void testRetrieve() throws Exception {
57+
SynonymSetCreateSchema synonymSetData = helper.createTestSynonymSetData();
58+
client.synonymSets().upsert(synonymSetName, synonymSetData);
59+
60+
SynonymSetSchema[] result = client.synonymSets().retrieve();
61+
62+
assertNotNull(result);
63+
assertTrue(result.length >= 1);
64+
65+
SynonymSetSchema foundSynonymSet = null;
66+
for (SynonymSetSchema ss : result) {
67+
if (synonymSetName.equals(ss.getName())) {
68+
foundSynonymSet = ss;
69+
break;
70+
}
71+
}
72+
73+
assertNotNull(foundSynonymSet);
74+
assertEquals(synonymSetName, foundSynonymSet.getName());
75+
assertEquals(1, foundSynonymSet.getItems().size());
76+
assertEquals("dummy", foundSynonymSet.getItems().get(0).getId());
77+
assertEquals(List.of("foo", "bar", "baz"), foundSynonymSet.getItems().get(0).getSynonyms());
78+
}
79+
}

0 commit comments

Comments
 (0)