Skip to content

Update facet configuration position and optionsLimit parameters #161

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public enum MatchType {
private MatchType matchType;

@SerializedName("position")
private int position;
private Integer position;

@SerializedName("hidden")
private Boolean hidden;
Expand All @@ -58,7 +58,7 @@ public enum MatchType {
private Boolean countable;

@SerializedName("options_limit")
private int optionsLimit;
private Integer optionsLimit;

@SerializedName("data")
private Map<String, Object> data;
Expand Down Expand Up @@ -143,7 +143,7 @@ public MatchType getMatchType() {
/**
* @return the position
*/
public int getPosition() {
public Integer getPosition() {
return position;
}

Expand Down Expand Up @@ -171,7 +171,7 @@ public Boolean getCountable() {
/**
* @return the optionsLimit
*/
public int getOptionsLimit() {
public Integer getOptionsLimit() {
return optionsLimit;
}

Expand Down Expand Up @@ -226,7 +226,7 @@ public void setMatchType(MatchType matchType) {
this.matchType = matchType;
}

public void setPosition(int position) {
public void setPosition(Integer position) {
this.position = position;
}

Expand All @@ -242,7 +242,7 @@ public void setCountable(Boolean countable) {
this.countable = countable;
}

public void setOptionsLimit(int optionsLimit) {
public void setOptionsLimit(Integer optionsLimit) {
this.optionsLimit = optionsLimit;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class FacetOptionConfiguration {
private String displayName;

@SerializedName("position")
private int position;
private Integer position;

@SerializedName("data")
private Map<String, Object> data;
Expand Down Expand Up @@ -58,7 +58,7 @@ public String getDisplayName() {
/**
* @return the position
*/
public int getPosition() {
public Integer getPosition() {
return position;
}

Expand Down Expand Up @@ -92,7 +92,7 @@ public void setDisplayName(String displayName) {
this.displayName = displayName;
}

public void setPosition(int position) {
public void setPosition(Integer position) {
this.position = position;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,4 +186,11 @@ public void testDeleteNonExistentFacetShouldThrowException() throws Exception {
ConstructorIO constructor = new ConstructorIO(token, apiKey, true, null);
constructor.deleteFacetConfiguration("nonExistentFacet", "Products");
}

@Test
public void testFacetConfigurationDefaultValues() {
FacetConfiguration config = new FacetConfiguration();
assertNull("Position should default to null", config.getPosition());
assertNull("Options limit should default to null", config.getOptionsLimit());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ private FacetConfiguration createFacetConfigurationObject(String name, String se
}

private FacetOptionConfiguration createFacetOptionConfigurationObject(
String value, String displayName, int position) {
String value, String displayName, Integer position) {
FacetOptionConfiguration config = new FacetOptionConfiguration();
config.setValue(value);
config.setDisplayName(displayName);
Expand Down Expand Up @@ -136,7 +136,7 @@ public void testCreateFacetOptionConfiguration() throws Exception {
assertEquals("test-option", jsonObj.get("value"));
assertEquals("test-alias", jsonObj.get("value_alias"));
assertEquals("Test Option", jsonObj.get("display_name"));
assertEquals(1, jsonObj.get("position"));
assertEquals(Integer.valueOf(1), jsonObj.get("position"));
assertEquals(false, jsonObj.get("hidden"));
assertEquals("bar", jsonObj.getJSONObject("data").get("foo"));

Expand Down Expand Up @@ -177,18 +177,53 @@ public void testCreateFacetOptionConfigurations() throws Exception {
assertEquals("test-option", jsonOption1.get("value"));
assertEquals("test-alias", jsonOption1.get("value_alias"));
assertEquals("Test Option", jsonOption1.get("display_name"));
assertEquals(1, jsonOption1.get("position"));
assertEquals(Integer.valueOf(1), jsonOption1.get("position"));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a similar test to this where we set values to null, see if it gets set correctly?

assertEquals(false, jsonOption1.get("hidden"));
assertEquals("bar", jsonOption1.getJSONObject("data").get("foo"));
assertEquals("test-option-2", jsonOption2.get("value"));
assertEquals("Test Option 2", jsonOption2.get("display_name"));
assertEquals(2, jsonOption2.get("position"));
assertEquals(Integer.valueOf(2), jsonOption2.get("position"));
assertEquals(true, jsonOption2.get("hidden"));

addFacetOptionToCleanupArray(facetName, "test-option");
addFacetOptionToCleanupArray(facetName, "test-option-2");
}

@Test
public void testCreateFacetOptionConfigurationsWithNullValues() throws Exception {
String facetName = "testFacetNullValues";
constructor.createFacetConfiguration(
new FacetConfigurationRequest(
createFacetConfigurationObject(facetName, PRODUCTS_SECTION),
PRODUCTS_SECTION));
addFacetToCleanupArray(facetName);

// Create facet option configuration with null values
FacetOptionConfiguration option = new FacetOptionConfiguration();
option.setValue("test-option-null");
option.setDisplayName(null);
option.setPosition(null);
option.setValueAlias(null);
option.setData(null);

List<FacetOptionConfiguration> configurations = Arrays.asList(option);

// Create and verify configuration
String response =
constructor.createOrUpdateFacetOptionConfigurations(
new FacetOptionConfigurationsRequest(
configurations, facetName, PRODUCTS_SECTION));
JSONArray jsonArr = new JSONArray(response);
JSONObject jsonOption = (JSONObject) jsonArr.get(0);

assertEquals("test-option-null", jsonOption.get("value"));
assertTrue("display_name should be null", jsonOption.isNull("display_name"));
assertTrue("position should be null", jsonOption.isNull("position"));
assertTrue("value_alias should be null", jsonOption.isNull("value_alias"));
assertTrue("data should be null", jsonOption.isNull("data"));
addFacetOptionToCleanupArray(facetName, "test-option-null");
}

@Test(expected = ConstructorException.class)
public void testCreateFacetOptionConfigurationWithNullRequest() throws Exception {
ConstructorIO constructor = new ConstructorIO(token, apiKey, true, null);
Expand Down Expand Up @@ -270,4 +305,10 @@ public void testDeleteNonExistentFacetOptionShouldThrowException() throws Except
constructor.deleteFacetOptionConfiguration(
"nonExistentFacet", "nonExistentOption", PRODUCTS_SECTION);
}

@Test
public void testFacetOptionConfigurationDefaultValues() {
FacetOptionConfiguration config = new FacetOptionConfiguration();
assertNull("Position should default to null", config.getPosition());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ public void multipleFacet() throws Exception {
assertEquals(config.getSortOrder(), "relevance");
assertEquals(config.getSortDescending(), true);
assertEquals(config.getMatchType(), MatchType.any);
assertEquals(config.getPosition(), 2);
assertEquals(config.getPosition(), Integer.valueOf(2));
assertEquals(config.getHidden(), false);
assertEquals(config.getIsProtected(), false);
assertEquals(config.getCountable(), true);
assertEquals(config.getOptionsLimit(), 300);
assertEquals(config.getOptionsLimit(), Integer.valueOf(300));
assertEquals(config.getData().size(), 1);
assertEquals(config.getData().get("foo"), "bar");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public void facetOption() throws Exception {
assertEquals(config.getDisplayName(), "Jif");
assertEquals(config.getValue(), "jif");
assertEquals(config.getReplaceValueAlias(), true);
assertEquals(config.getPosition(), 1);
assertEquals(config.getPosition(), Integer.valueOf(1));
assertEquals(config.getData().size(), 1);
assertEquals(config.getData().get("foo"), "bar");
}
Expand Down