changes to get testing framework ready

This commit is contained in:
brian 2021-01-18 16:35:12 -05:00
parent 41164123a3
commit bc6a09f9b9
10 changed files with 95 additions and 16 deletions

View File

@ -86,6 +86,12 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.inteligr8</groupId>
<artifactId>junit4-ext</artifactId>
<version>[1.0,2.0)</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>

View File

@ -32,11 +32,12 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
@Component
@Component(CommonmarkTransformer.ID)
public class CommonmarkTransformer implements Transformer {
public static final String ID = "commonmark";
private final Logger logger = LoggerFactory.getLogger(CommonmarkTransformer.class);
private final String id = "commonmark";
private final List<String> classSearchPrefixes = Arrays.asList("", "org.commonmark.ext.{name}.", "org.commonmark.ext.gfm.{name}.");
private final Pattern extClassNamePattern = Pattern.compile("[\\.]?(([A-Za-z0-9]+)Extension|[A-Za-z0-9]+)$");
@ -54,7 +55,7 @@ public class CommonmarkTransformer implements Transformer {
@Override
public String getTransformerId() {
return this.id;
return ID;
}
@Override

View File

@ -34,7 +34,7 @@ import com.vladsch.flexmark.util.ast.IRender;
import com.vladsch.flexmark.util.data.MutableDataSet;
import com.vladsch.flexmark.util.misc.Extension;
@Component
@Component(FlexmarkTransformer.ID)
public class FlexmarkTransformer implements Transformer {
public static final String ID = "flexmark";

View File

@ -29,9 +29,11 @@
package com.inteligr8.alfresco.module.alfmarkdown;
import java.io.File;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -96,21 +98,26 @@ public class TransformerController extends AbstractTransformerController {
}
@PostConstruct
public void mapEngines() {
public void registerEngines() {
this.engineMap = new HashMap<>();
for (Transformer transformer : this.transformers)
for (Transformer transformer : this.transformers) {
if (this.logger.isInfoEnabled())
this.logger.info("Registered transformer/engine: " + transformer.getTransformerId());
this.engineMap.put(transformer.getTransformerId(), transformer);
}
}
@PostConstruct
public void initProbe() {
this.probe = new ProbeTestTransform(this, "quick.src", "quick.trgt",
7455L, 1024L, 150, 10240L, 60L * 20L + 1L, 60L * 15L - 15L) {
this.probe = new ProbeTestTransform(this, "quick.md", "quick.html",
500L, 500L, 150, 16384L, 10L, 300L) {
@Override
protected void executeTransformCommand(File sourceFile, File targetFile) {
if (logger.isTraceEnabled())
logger.trace("getProbeTestTransform().executeTransformCommand('" + sourceFile + "', '" + targetFile + "')");
// TODO test a transformation
Transformer transformer = transformers.get(new Random().nextInt(2));
transformer.transform(MediaType.TEXT_MARKDOWN_VALUE, MediaType.TEXT_HTML_VALUE, Collections.emptyMap(), sourceFile, targetFile);
System.out.println(targetFile.length());
}
};
}

View File

@ -1,11 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean autowire-candidate="true" class="org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient" />
<bean autowire-candidate="true" class="org.springframework.web.client.RestTemplate" />
<bean autowire-candidate="true" class="org.alfresco.transform.client.model.TransformRequestValidator" />
<bean autowire-candidate="true" class="org.alfresco.transformer.TransformRegistryImpl" />
<context:component-scan base-package="com.inteligr8.alfresco.module.alfmarkdown" />
</beans>

View File

@ -0,0 +1 @@
Just a simple markdown file, which is just a simple text file.

View File

@ -7,7 +7,10 @@
<table>
<tr><td><div style="text-align:right">file *</div></td><td><input type="file" name="file" /></td></tr>
<tr><td><div style="text-align:right">targetExtension *</div></td><td><input type="text" name="targetExtension" value="" /></td></tr>
<tr><td><div style="text-align:right">engine</div></td><td><input type="text" name="engine" value="" /></td></tr>
<tr><td><div style="text-align:right">engine</div></td><td><select name="engine">
<option value="commonmark">commonmark</option>
<option value="flexmark" selected>flexmark</option>
</select></td></tr>
<tr><td><div style="text-align:right">profile</div></td><td><input type="text" name="profile" value="" /></td></tr>
<tr><td><div style="text-align:right">extensions</div></td><td><textarea name="extensions" rows="5"></textarea></tr>
<tr><td></td><td><input type="submit" value="Transform" /></td></tr>

View File

@ -0,0 +1,18 @@
package com.inteligr8.alfresco.module.alfmarkdown;
import org.alfresco.transformer.executors.Transformer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
public class FlexmarkTransformerTest extends TransformerTest {
@Autowired
@Qualifier(FlexmarkTransformer.ID)
protected Transformer transformer;
@Override
public Transformer getTransformer() {
return this.transformer;
}
}

View File

@ -1,13 +1,15 @@
package com.inteligr8.alfresco.module.alfmarkdown;
import org.alfresco.transformer.AbstractTransformerController;
import org.junit.Ignore;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.inteligr8.junit4.AssertRegex;
@RunWith(SpringRunner.class)
@WebMvcTest(controllers = TransformerController.class)
public class TransformerControllerTest {
@ -15,8 +17,14 @@ public class TransformerControllerTest {
@Autowired
protected AbstractTransformerController controller;
@Test @Ignore
public void test() {
@Test
public void tryTransformerName() {
Assert.assertEquals("alfmarkdown", this.controller.getTransformerName());
}
@Test
public void tryVersion() {
AssertRegex.assertMatches("[0-9]+\\.[0-9]+(\\.[0-9]+|-SNAPSHOT)", this.controller.version());
}
}

View File

@ -0,0 +1,30 @@
package com.inteligr8.alfresco.module.alfmarkdown;
import java.util.Collections;
import org.alfresco.transform.exceptions.TransformException;
import org.alfresco.transformer.executors.Transformer;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.inteligr8.junit4.AssertRegex;
@RunWith(SpringRunner.class)
@WebMvcTest(controllers = TransformerController.class)
public abstract class TransformerTest {
public abstract Transformer getTransformer();
@Test
public void tryTransformerId() {
AssertRegex.assertMatches("flexmark|commonmark", this.getTransformer().getTransformerId());
}
@Test(expected = TransformException.class)
public void tryExtractMetadata() throws Exception {
this.getTransformer().extractMetadata("does-not-matter", "does-not-matter", "does-not-matter", Collections.emptyMap(), null, null);
}
}