package fitnesse.slim.test;
import fitnesse.slim.Converter;
import fitnesse.slim.converters.ConverterRegistry;
import fitnesse.slim.converters.DefaultConverter;
import fitnesse.slim.converters.GenericCollectionConverter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class TestSlimWithConverter {
private Converter<List> standardConverter = null;
public void setListConverter() {
standardConverter = ConverterRegistry.getConverterForClass(List.class);
ConverterRegistry.addConverter(List.class, new ListConverter());
}
public void removeListConverter() {
ConverterRegistry.addConverter(List.class, standardConverter);
}
public Object getObject() {
return getArrayList();
}
public List<String> getList() {
return getArrayList();
}
public ArrayList<String> getArrayList() {
return new ArrayList<>(Arrays.asList("a", "b", "c"));
}
public boolean sameList(List otherList) {
return getList().equals(otherList);
}
private class ListConverter implements Converter<List> {
private GenericCollectionConverter<Object, List<Object>> converter;
public ListConverter() {
converter = new GenericCollectionConverter<>(List.class, new DefaultConverter());
}
@Override
public String toString(List o) {
String s = converter.toString(o);
return s.replace("[", "{").replace("]", "}");
}
@Override
public List fromString(String arg) {
String replace = arg.replace("{", "[").replace("}", "]");
return converter.fromString(replace);
}
}
}