AnnotatedAlgorithmMetadata { public TypedProcessDescription getDescription() { return this.description; } AnnotatedAlgorithmMetadata(Class<?> algorithmClass, InputHandlerRepository parserRepository,
                                      OutputHandlerRepository generatorRepository,
                                      LiteralTypeRepository literalTypeRepository); Class<?> getAlgorithmClass(); TypedProcessDescription getDescription(); Stream<? extends B> parseElements(Stream<M> members, List<? extends AnnotationParser<?, M, ? extends B>> outputParser);  }
@Test public void test() { IORepo repo = new IORepo(); AnnotatedAlgorithmMetadata metadata = new AnnotatedAlgorithmMetadata(TestProcess.class, repo, repo, new LiteralDataManagerImpl()); ProcessDescription processDescription = metadata.getDescription(); errors.checkThat(processDescription.getVersion(), is("1.0.0")); errors.checkThat(processDescription.getTitle().getValue(), is("Test Process")); errors.checkThat(processDescription.getAbstract().map(OwsLanguageString::getValue).orElse(null), is("Test Abstract")); errors.checkThat(processDescription.getId(), is(new OwsCode(TestProcess.class.getCanonicalName()))); errors.checkThat(processDescription.getInputDescriptions().size(), is(9)); errors.checkThat(processDescription.getOutputDescriptions().size(), is(8)); errors.checkThat(processDescription.getInput("input8").getOccurence().getMax().get(),is(BigInteger.TEN)); URI epsg4328URI = null; try { epsg4328URI = new URI(epsg4328String); } catch (URISyntaxException e) { fail(e.getMessage()); } errors.checkThat(processDescription.getInput("bboxInput").asBoundingBox().getSupportedCRS().iterator().next().getValue(), is(epsg4328URI)); }