Skip to content

Commit e296553

Browse files
authored
Update facet configuration position and optionsLimit parameters (#161)
* Update facet configuration `position` and `optionsLimit` parameters * Fix tests and lint * fix tests * Add null tests * Fix tests * Fix tests
1 parent 07da660 commit e296553

File tree

6 files changed

+64
-16
lines changed

6 files changed

+64
-16
lines changed

constructorio-client/src/main/java/io/constructor/client/models/FacetConfiguration.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public enum MatchType {
4646
private MatchType matchType;
4747

4848
@SerializedName("position")
49-
private int position;
49+
private Integer position;
5050

5151
@SerializedName("hidden")
5252
private Boolean hidden;
@@ -58,7 +58,7 @@ public enum MatchType {
5858
private Boolean countable;
5959

6060
@SerializedName("options_limit")
61-
private int optionsLimit;
61+
private Integer optionsLimit;
6262

6363
@SerializedName("data")
6464
private Map<String, Object> data;
@@ -143,7 +143,7 @@ public MatchType getMatchType() {
143143
/**
144144
* @return the position
145145
*/
146-
public int getPosition() {
146+
public Integer getPosition() {
147147
return position;
148148
}
149149

@@ -171,7 +171,7 @@ public Boolean getCountable() {
171171
/**
172172
* @return the optionsLimit
173173
*/
174-
public int getOptionsLimit() {
174+
public Integer getOptionsLimit() {
175175
return optionsLimit;
176176
}
177177

@@ -226,7 +226,7 @@ public void setMatchType(MatchType matchType) {
226226
this.matchType = matchType;
227227
}
228228

229-
public void setPosition(int position) {
229+
public void setPosition(Integer position) {
230230
this.position = position;
231231
}
232232

@@ -242,7 +242,7 @@ public void setCountable(Boolean countable) {
242242
this.countable = countable;
243243
}
244244

245-
public void setOptionsLimit(int optionsLimit) {
245+
public void setOptionsLimit(Integer optionsLimit) {
246246
this.optionsLimit = optionsLimit;
247247
}
248248

constructorio-client/src/main/java/io/constructor/client/models/FacetOptionConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class FacetOptionConfiguration {
1919
private String displayName;
2020

2121
@SerializedName("position")
22-
private int position;
22+
private Integer position;
2323

2424
@SerializedName("data")
2525
private Map<String, Object> data;
@@ -58,7 +58,7 @@ public String getDisplayName() {
5858
/**
5959
* @return the position
6060
*/
61-
public int getPosition() {
61+
public Integer getPosition() {
6262
return position;
6363
}
6464

@@ -92,7 +92,7 @@ public void setDisplayName(String displayName) {
9292
this.displayName = displayName;
9393
}
9494

95-
public void setPosition(int position) {
95+
public void setPosition(Integer position) {
9696
this.position = position;
9797
}
9898

constructorio-client/src/test/java/io/constructor/client/ConstructorIOFacetConfigurationTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,4 +186,11 @@ public void testDeleteNonExistentFacetShouldThrowException() throws Exception {
186186
ConstructorIO constructor = new ConstructorIO(token, apiKey, true, null);
187187
constructor.deleteFacetConfiguration("nonExistentFacet", "Products");
188188
}
189+
190+
@Test
191+
public void testFacetConfigurationDefaultValues() {
192+
FacetConfiguration config = new FacetConfiguration();
193+
assertNull("Position should default to null", config.getPosition());
194+
assertNull("Options limit should default to null", config.getOptionsLimit());
195+
}
189196
}

constructorio-client/src/test/java/io/constructor/client/ConstructorIOFacetOptionConfigurationTest.java

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ private FacetConfiguration createFacetConfigurationObject(String name, String se
7272
}
7373

7474
private FacetOptionConfiguration createFacetOptionConfigurationObject(
75-
String value, String displayName, int position) {
75+
String value, String displayName, Integer position) {
7676
FacetOptionConfiguration config = new FacetOptionConfiguration();
7777
config.setValue(value);
7878
config.setDisplayName(displayName);
@@ -136,7 +136,7 @@ public void testCreateFacetOptionConfiguration() throws Exception {
136136
assertEquals("test-option", jsonObj.get("value"));
137137
assertEquals("test-alias", jsonObj.get("value_alias"));
138138
assertEquals("Test Option", jsonObj.get("display_name"));
139-
assertEquals(1, jsonObj.get("position"));
139+
assertEquals(Integer.valueOf(1), jsonObj.get("position"));
140140
assertEquals(false, jsonObj.get("hidden"));
141141
assertEquals("bar", jsonObj.getJSONObject("data").get("foo"));
142142

@@ -177,18 +177,53 @@ public void testCreateFacetOptionConfigurations() throws Exception {
177177
assertEquals("test-option", jsonOption1.get("value"));
178178
assertEquals("test-alias", jsonOption1.get("value_alias"));
179179
assertEquals("Test Option", jsonOption1.get("display_name"));
180-
assertEquals(1, jsonOption1.get("position"));
180+
assertEquals(Integer.valueOf(1), jsonOption1.get("position"));
181181
assertEquals(false, jsonOption1.get("hidden"));
182182
assertEquals("bar", jsonOption1.getJSONObject("data").get("foo"));
183183
assertEquals("test-option-2", jsonOption2.get("value"));
184184
assertEquals("Test Option 2", jsonOption2.get("display_name"));
185-
assertEquals(2, jsonOption2.get("position"));
185+
assertEquals(Integer.valueOf(2), jsonOption2.get("position"));
186186
assertEquals(true, jsonOption2.get("hidden"));
187187

188188
addFacetOptionToCleanupArray(facetName, "test-option");
189189
addFacetOptionToCleanupArray(facetName, "test-option-2");
190190
}
191191

192+
@Test
193+
public void testCreateFacetOptionConfigurationsWithNullValues() throws Exception {
194+
String facetName = "testFacetNullValues";
195+
constructor.createFacetConfiguration(
196+
new FacetConfigurationRequest(
197+
createFacetConfigurationObject(facetName, PRODUCTS_SECTION),
198+
PRODUCTS_SECTION));
199+
addFacetToCleanupArray(facetName);
200+
201+
// Create facet option configuration with null values
202+
FacetOptionConfiguration option = new FacetOptionConfiguration();
203+
option.setValue("test-option-null");
204+
option.setDisplayName(null);
205+
option.setPosition(null);
206+
option.setValueAlias(null);
207+
option.setData(null);
208+
209+
List<FacetOptionConfiguration> configurations = Arrays.asList(option);
210+
211+
// Create and verify configuration
212+
String response =
213+
constructor.createOrUpdateFacetOptionConfigurations(
214+
new FacetOptionConfigurationsRequest(
215+
configurations, facetName, PRODUCTS_SECTION));
216+
JSONArray jsonArr = new JSONArray(response);
217+
JSONObject jsonOption = (JSONObject) jsonArr.get(0);
218+
219+
assertEquals("test-option-null", jsonOption.get("value"));
220+
assertTrue("display_name should be null", jsonOption.isNull("display_name"));
221+
assertTrue("position should be null", jsonOption.isNull("position"));
222+
assertTrue("value_alias should be null", jsonOption.isNull("value_alias"));
223+
assertTrue("data should be null", jsonOption.isNull("data"));
224+
addFacetOptionToCleanupArray(facetName, "test-option-null");
225+
}
226+
192227
@Test(expected = ConstructorException.class)
193228
public void testCreateFacetOptionConfigurationWithNullRequest() throws Exception {
194229
ConstructorIO constructor = new ConstructorIO(token, apiKey, true, null);
@@ -270,4 +305,10 @@ public void testDeleteNonExistentFacetOptionShouldThrowException() throws Except
270305
constructor.deleteFacetOptionConfiguration(
271306
"nonExistentFacet", "nonExistentOption", PRODUCTS_SECTION);
272307
}
308+
309+
@Test
310+
public void testFacetOptionConfigurationDefaultValues() {
311+
FacetOptionConfiguration config = new FacetOptionConfiguration();
312+
assertNull("Position should default to null", config.getPosition());
313+
}
273314
}

constructorio-client/src/test/java/io/constructor/client/FacetConfigurationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ public void multipleFacet() throws Exception {
2323
assertEquals(config.getSortOrder(), "relevance");
2424
assertEquals(config.getSortDescending(), true);
2525
assertEquals(config.getMatchType(), MatchType.any);
26-
assertEquals(config.getPosition(), 2);
26+
assertEquals(config.getPosition(), Integer.valueOf(2));
2727
assertEquals(config.getHidden(), false);
2828
assertEquals(config.getIsProtected(), false);
2929
assertEquals(config.getCountable(), true);
30-
assertEquals(config.getOptionsLimit(), 300);
30+
assertEquals(config.getOptionsLimit(), Integer.valueOf(300));
3131
assertEquals(config.getData().size(), 1);
3232
assertEquals(config.getData().get("foo"), "bar");
3333
}

constructorio-client/src/test/java/io/constructor/client/FacetOptionConfigurationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public void facetOption() throws Exception {
1919
assertEquals(config.getDisplayName(), "Jif");
2020
assertEquals(config.getValue(), "jif");
2121
assertEquals(config.getReplaceValueAlias(), true);
22-
assertEquals(config.getPosition(), 1);
22+
assertEquals(config.getPosition(), Integer.valueOf(1));
2323
assertEquals(config.getData().size(), 1);
2424
assertEquals(config.getData().get("foo"), "bar");
2525
}

0 commit comments

Comments
 (0)