Skip to content

Commit 853fd2e

Browse files
committed
Add getCompatibleInputs test
Added a unit test for the ConvertService#getCompatibleInputs method.
1 parent 5d04b65 commit 853fd2e

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

src/test/java/org/scijava/convert/ConvertServiceTest.java

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@
5252
import org.junit.Before;
5353
import org.junit.Test;
5454
import org.scijava.Context;
55+
import org.scijava.Priority;
56+
import org.scijava.plugin.Plugin;
5557
import org.scijava.util.ClassUtils;
5658
import org.scijava.util.LongArray;
5759

@@ -431,6 +433,24 @@ class Struct {
431433
assertNotNull(struct.listWrapper);
432434
}
433435

436+
/**
437+
* Test that a {@link Converter} with the appropriate {@link
438+
* Converter#populateInputCandidates(Collection)} implementation will populate
439+
* candidate input lists with objects it can convert to a requested output
440+
* type.
441+
*/
442+
@Test
443+
public void testGetCompatibleInputs() {
444+
final List<Object> compatibleInputs =
445+
new ArrayList<Object>(convertService.getCompatibleInputs(HisList.class));
446+
447+
assertEquals(4, compatibleInputs.size());
448+
assertEquals(StringHisListConverter.S1, compatibleInputs.get(0));
449+
assertEquals(StringHisListConverter.S2, compatibleInputs.get(1));
450+
assertEquals(StringHisListConverter.S3, compatibleInputs.get(2));
451+
assertEquals(StringHisListConverter.S4, compatibleInputs.get(3));
452+
}
453+
434454
// -- Helper Methods --
435455

436456
/**
@@ -552,4 +572,71 @@ public static enum Words {
552572
FOO, BAR, FUBAR
553573
}
554574

575+
/**
576+
* Dummy {@link Converter} implementation that provides two {@code String}
577+
* input candidates for converting to {@link HisList}s. The actual conversion
578+
* methods are not implemented and are unnecessary.
579+
*/
580+
@Plugin(type = Converter.class, priority = Priority.LAST_PRIORITY)
581+
public static class StringHisListConverter extends AbstractConverter {
582+
583+
// Sample strings
584+
585+
private static final String S1 = "THIS_IS_A_TEST";
586+
private static final String S2 = "WHY_AM_I_HERE";
587+
private static final String S3 = "I_LIKE_TURTLES";
588+
private static final String S4 = "OVER_9000";
589+
590+
// -- Converter methods --
591+
592+
@Override
593+
public void populateInputCandidates(final Collection<Object> objects) {
594+
objects.add(S1);
595+
objects.add(S2);
596+
objects.add(S3);
597+
objects.add(S4);
598+
}
599+
600+
@Override
601+
public Class<?> getOutputType() {
602+
return HisList.class;
603+
}
604+
605+
@Override
606+
public Class<?> getInputType() {
607+
return String.class;
608+
}
609+
610+
// -- Dummy conversion methods --
611+
612+
@Override
613+
public boolean canConvert(Class<?> src, Type dest) {
614+
return false;
615+
}
616+
617+
@Override
618+
public boolean canConvert(Class<?> src, Class<?> dest) {
619+
return false;
620+
}
621+
622+
@Override
623+
public boolean canConvert(Object src, Type dest) {
624+
return false;
625+
}
626+
627+
@Override
628+
public boolean canConvert(Object src, Class<?> dest) {
629+
return false;
630+
}
631+
632+
@Override
633+
public Object convert(Object src, Type dest) {
634+
return null;
635+
}
636+
637+
@Override
638+
public <T> T convert(Object src, Class<T> dest) {
639+
return null;
640+
}
641+
}
555642
}

0 commit comments

Comments
 (0)