use of com.synopsys.integration.detect.workflow.blackduck.project.customfields.CustomFieldElement in project synopsys-detect by blackducksoftware.
the class UpdateCustomFieldsOperation method pairOperationFromViews.
private List<CustomFieldOperation> pairOperationFromViews(List<CustomFieldElement> elements, List<CustomFieldView> views, String targetName, BlackDuckApiClient blackDuckService) throws DetectUserFriendlyException {
List<CustomFieldOperation> operations = new ArrayList<>();
for (CustomFieldElement element : elements) {
Optional<CustomFieldView> fieldView = views.stream().filter(view -> view.getLabel().equals(element.getLabel())).findFirst();
if (!fieldView.isPresent()) {
throw new DetectUserFriendlyException(String.format("Unable to find custom field view with label '%s' on the %s. Ensure it exists.", element.getLabel(), targetName), ExitCodeType.FAILURE_BLACKDUCK_FEATURE_ERROR);
}
List<String> values = new ArrayList<>();
List<CustomFieldOptionView> options = retrieveCustomFieldOptions(fieldView.get(), blackDuckService);
if (options.isEmpty()) {
logger.debug("Did not find any associated options for this field, will use raw values.");
values = element.getValue();
} else {
logger.debug("Found one or more options for this field. Will attempt to map given values to fields..");
for (String value : element.getValue()) {
Optional<CustomFieldOptionView> option = options.stream().filter(it -> it.getLabel().equals(value)).findFirst();
if (option.isPresent()) {
values.add(option.get().getHref().string());
} else {
throw new DetectUserFriendlyException(String.format("Unable to update custom field '%s', unable to find option for value '%s'", element.getLabel(), value), ExitCodeType.FAILURE_BLACKDUCK_FEATURE_ERROR);
}
}
}
operations.add(new CustomFieldOperation(fieldView.get(), values));
}
return operations;
}
use of com.synopsys.integration.detect.workflow.blackduck.project.customfields.CustomFieldElement in project synopsys-detect by blackducksoftware.
the class DetectCustomFieldParserTest method parsedProject.
@Test
public void parsedProject() throws DetectUserFriendlyException {
Map<String, String> props = new HashMap<>();
props.put("detect.custom.fields.project[0].label", "label");
props.put("detect.custom.fields.project[0].value", "value1, value2");
DetectCustomFieldParser parser = new DetectCustomFieldParser();
CustomFieldDocument document = parser.parseCustomFieldDocument(props);
Assertions.assertEquals(1, document.getProject().size());
CustomFieldElement element = document.getProject().get(0);
Assertions.assertEquals("label", element.getLabel());
Assertions.assertEquals(2, element.getValue().size());
Assertions.assertTrue(element.getValue().contains("value1"));
Assertions.assertTrue(element.getValue().contains("value2"));
}
use of com.synopsys.integration.detect.workflow.blackduck.project.customfields.CustomFieldElement in project synopsys-detect by blackducksoftware.
the class DetectCustomFieldParserTest method parsedMissingValueStillList.
@Test
public void parsedMissingValueStillList() throws DetectUserFriendlyException {
Map<String, String> props = new HashMap<>();
props.put("detect.custom.fields.project[0].label", "label");
DetectCustomFieldParser parser = new DetectCustomFieldParser();
CustomFieldDocument document = parser.parseCustomFieldDocument(props);
CustomFieldElement element = document.getProject().get(0);
Assertions.assertEquals(0, element.getValue().size());
}
use of com.synopsys.integration.detect.workflow.blackduck.project.customfields.CustomFieldElement in project synopsys-detect by blackducksoftware.
the class DetectCustomFieldParserTest method parsedEmptySingleQuotesAsEmptyArray.
@Test
public void parsedEmptySingleQuotesAsEmptyArray() throws DetectUserFriendlyException {
Map<String, String> props = new HashMap<>();
props.put("detect.custom.fields.project[0].name", "example");
props.put("detect.custom.fields.project[0].value", "''");
DetectCustomFieldParser parser = new DetectCustomFieldParser();
CustomFieldDocument document = parser.parseCustomFieldDocument(props);
CustomFieldElement element = document.getProject().get(0);
Assertions.assertEquals(0, element.getValue().size());
}
use of com.synopsys.integration.detect.workflow.blackduck.project.customfields.CustomFieldElement in project synopsys-detect by blackducksoftware.
the class DetectCustomFieldParserTest method parsedEmptyStringAsEmptyArray.
@Test
public void parsedEmptyStringAsEmptyArray() throws DetectUserFriendlyException {
Map<String, String> props = new HashMap<>();
props.put("detect.custom.fields.project[0].name", "example");
props.put("detect.custom.fields.project[0].value", "");
DetectCustomFieldParser parser = new DetectCustomFieldParser();
CustomFieldDocument document = parser.parseCustomFieldDocument(props);
CustomFieldElement element = document.getProject().get(0);
Assertions.assertEquals(0, element.getValue().size());
}
Aggregations