use of org.apache.commons.lang3.builder.ToStringStyleTest.Person in project flow by vaadin.
the class BinderTest method setRequired_withCustomValidator_modelConverterBeforeValidator.
@Test
public void setRequired_withCustomValidator_modelConverterBeforeValidator() {
TestTextField textField = new TestTextField();
assertFalse(textField.isRequiredIndicatorVisible());
Converter<String, String> stringBasicPreProcessingConverter = new Converter<String, String>() {
@Override
public Result<String> convertToModel(String value, ValueContext context) {
if (StringUtils.isBlank(value)) {
return Result.ok(null);
}
return Result.ok(StringUtils.trim(value));
}
@Override
public String convertToPresentation(String value, ValueContext context) {
if (value == null) {
return "";
}
return value;
}
};
AtomicInteger invokes = new AtomicInteger();
Validator<String> customRequiredValidator = (value, context) -> {
invokes.incrementAndGet();
if (value == null) {
return ValidationResult.error("Input required.");
}
return ValidationResult.ok();
};
binder.forField(textField).withConverter(stringBasicPreProcessingConverter).asRequired(customRequiredValidator).bind(Person::getFirstName, Person::setFirstName);
binder.setBean(item);
assertThat(textField.getErrorMessage(), isEmptyString());
assertEquals(1, invokes.get());
textField.setValue(" ");
assertNotNull(textField.getErrorMessage());
assertEquals("Input required.", componentErrors.get(textField));
// validation is done for all changed bindings once.
assertEquals(2, invokes.get());
textField.setValue("value");
assertFalse(textField.isInvalid());
assertTrue(textField.isRequiredIndicatorVisible());
}
use of org.apache.commons.lang3.builder.ToStringStyleTest.Person in project flow by vaadin.
the class BinderTest method bindingReadBean_converterThrows_exceptionHandlerSet_bindingExceptionIsThrown.
@Test(expected = BindingException.class)
public void bindingReadBean_converterThrows_exceptionHandlerSet_bindingExceptionIsThrown() {
TestTextField testField = new TestTextField();
setExceptionHandler();
binder.forField(testField).withConverter(Converter.<String, String>from(name -> Result.ok(name), name -> {
throw new NullPointerException();
})).bind(Person::getFirstName, Person::setFirstName).read(new Person());
}
use of org.apache.commons.lang3.builder.ToStringStyleTest.Person in project molgenis by molgenis.
the class RestController method retrieveEntityCollection.
/**
* Does a rsql/fiql query, returns the result as csv
* <p>
* Parameters:
* <p>
* q: the query
* <p>
* attributes: the attributes to return, if not specified returns all attributes
* <p>
* start: the index of the first row, default 0
* <p>
* num: the number of results to return, default 100, max 10000
* <p>
* <p>
* Example: /api/v1/csv/person?q=firstName==Piet&attributes=firstName,lastName&start=10&num=100
*/
@GetMapping(value = "/csv/{entityTypeId}", produces = "text/csv")
@ResponseBody
public EntityCollection retrieveEntityCollection(@PathVariable("entityTypeId") String entityTypeId, @RequestParam(value = "attributes", required = false) String[] attributes, HttpServletRequest req, HttpServletResponse resp) throws IOException {
final Set<String> attributesSet = toAttributeSet(attributes);
EntityType meta;
Iterable<Entity> entities;
try {
meta = dataService.getEntityType(entityTypeId);
Query<Entity> q = new QueryStringParser(meta, molgenisRSQL).parseQueryString(req.getParameterMap());
String[] sortAttributeArray = req.getParameterMap().get("sortColumn");
if (sortAttributeArray != null && sortAttributeArray.length == 1 && StringUtils.isNotEmpty(sortAttributeArray[0])) {
String sortAttribute = sortAttributeArray[0];
String[] sortOrderArray = req.getParameterMap().get("sortOrder");
Sort.Direction order = Sort.Direction.ASC;
if (sortOrderArray != null && sortOrderArray.length == 1 && StringUtils.isNotEmpty(sortOrderArray[0])) {
String sortOrder = sortOrderArray[0];
switch(sortOrder) {
case "ASC":
order = Sort.Direction.ASC;
break;
case "DESC":
order = Sort.Direction.DESC;
break;
default:
throw new RuntimeException("unknown sort order");
}
}
q.sort().on(sortAttribute, order);
}
if (q.getPageSize() == 0) {
q.pageSize(EntityCollectionRequest.DEFAULT_ROW_COUNT);
}
if (q.getPageSize() > EntityCollectionRequest.MAX_ROWS) {
resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Num exceeded the maximum of " + EntityCollectionRequest.MAX_ROWS + " rows");
return null;
}
entities = () -> dataService.findAll(entityTypeId, q).iterator();
} catch (ConversionFailedException | RSQLParserException | UnknownAttributeException | IllegalArgumentException | UnsupportedOperationException | UnknownEntityException e) {
resp.sendError(HttpServletResponse.SC_BAD_REQUEST, e.getMessage());
return null;
} catch (MolgenisDataAccessException e) {
resp.sendError(HttpServletResponse.SC_UNAUTHORIZED);
return null;
}
// Check attribute names
Iterable<String> attributesIterable = Iterables.transform(meta.getAtomicAttributes(), attribute -> attribute.getName().toLowerCase());
if (attributesSet != null) {
SetView<String> diff = Sets.difference(attributesSet, Sets.newHashSet(attributesIterable));
if (!diff.isEmpty()) {
resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Unknown attributes " + diff);
return null;
}
}
attributesIterable = Iterables.transform(meta.getAtomicAttributes(), Attribute::getName);
if (attributesSet != null) {
attributesIterable = Iterables.filter(attributesIterable, attribute -> attributesSet.contains(attribute.toLowerCase()));
}
return new DefaultEntityCollection(entities, attributesIterable);
}
use of org.apache.commons.lang3.builder.ToStringStyleTest.Person in project commons-lang by apache.
the class JsonToStringStyleTest method testArray.
@Test
public void testArray() {
final Person p = new Person();
p.name = "Jane Doe";
p.age = 25;
p.smoker = true;
assertEquals("{\"name\":\"Jane Doe\",\"age\":25,\"smoker\":true,\"groups\":['admin', 'manager', 'user']}", new ToStringBuilder(p).append("name", p.name).append("age", p.age).append("smoker", p.smoker).append("groups", new Object() {
@Override
public String toString() {
return "['admin', 'manager', 'user']";
}
}).toString());
}
use of org.apache.commons.lang3.builder.ToStringStyleTest.Person in project commons-lang by apache.
the class JsonToStringStyleTest method testPerson.
@Test
public void testPerson() {
final Person p = new Person();
p.name = "Jane Doe";
p.age = 25;
p.smoker = true;
assertEquals("{\"name\":\"Jane Doe\",\"age\":25,\"smoker\":true}", new ToStringBuilder(p).append("name", p.name).append("age", p.age).append("smoker", p.smoker).toString());
}
Aggregations