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+ }
0 commit comments