package com.github.drapostolos.typeparser; import static org.assertj.core.api.Assertions.assertThat; import java.awt.Component; import java.awt.Graphics; import java.awt.Rectangle; import java.beans.PropertyChangeListener; import java.beans.PropertyEditor; import java.beans.PropertyEditorManager; import org.junit.Test; public class PropertyEditorTest extends TestBase { @Test public void canSkipPropertyEditor() throws Exception { //given parser = builder.enablePropertyEditor().build(); //then shouldThrow(NoSuchRegisteredParserException.class) .whenParsing(DUMMY_STRING) .to(PropertyEditorTest.class); } @Test public void canUsePropertyEditor() throws Exception { //given PropertyEditorManager.registerEditor(TypeToUseWithPropertyEditor.class, MyPropertyEditor.class); //when parser = builder.enablePropertyEditor().build(); Object o = parser.parse("alex", TypeToUseWithPropertyEditor.class); //then assertThat(o).isInstanceOf(TypeToUseWithPropertyEditor.class); } public static class TypeToUseWithPropertyEditor { public TypeToUseWithPropertyEditor(int i, String text) { // dummy constructor } } public static class MyPropertyEditor implements PropertyEditor { private String text; @Override public void setValue(Object value) {} @Override public Object getValue() { return new TypeToUseWithPropertyEditor(1, text); } @Override public boolean isPaintable() { return false; } @Override public void paintValue(Graphics gfx, Rectangle box) { } @Override public String getJavaInitializationString() { return null; } @Override public String getAsText() { // TODO Auto-generated method stub return null; } @Override public void setAsText(String text) throws IllegalArgumentException { this.text = text; System.out.println("setAsTest: " + text); } @Override public String[] getTags() { // TODO Auto-generated method stub return null; } @Override public Component getCustomEditor() { // TODO Auto-generated method stub return null; } @Override public boolean supportsCustomEditor() { // TODO Auto-generated method stub return false; } @Override public void addPropertyChangeListener(PropertyChangeListener listener) { // TODO Auto-generated method stub } @Override public void removePropertyChangeListener(PropertyChangeListener listener) { // TODO Auto-generated method stub } } }