Skip to content
Snippets Groups Projects
Commit 1fe39ee0 authored by Sebastien's avatar Sebastien
Browse files

+ Code Re-relocation

+ UnitTest completion
parent cb7d1d08
Branches mui5-tetras-main-old-stable
No related tags found
1 merge request!9Refactoring toward clean architecture
Showing
with 67 additions and 174 deletions
...@@ -6,31 +6,35 @@ ...@@ -6,31 +6,35 @@
<sourceOutputDir name="target/generated-sources/annotations" /> <sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" /> <outputRelativeToContentRoot value="true" />
<module name="rdf" /> <module name="unl-tools-infrastructure" />
<module name="unl-parser" /> <module name="unl-tools-core" />
</profile> </profile>
<profile name="Annotation profile for unlTools" enabled="true"> <profile name="Annotation profile for unl-tools-main" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" /> <sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" /> <outputRelativeToContentRoot value="true" />
<option name="project" value="fr.tetras_libre.unl/unl2rdf-app" /> <option name="project" value="fr.tetras_libre.unl/unl-tools-app" />
<processorPath useClasspath="false"> <processorPath useClasspath="false">
<entry name="$MAVEN_REPOSITORY$/info/picocli/picocli-codegen/4.2.0/picocli-codegen-4.2.0.jar" /> <entry name="$MAVEN_REPOSITORY$/info/picocli/picocli-codegen/4.2.0/picocli-codegen-4.2.0.jar" />
<entry name="$MAVEN_REPOSITORY$/info/picocli/picocli/4.2.0/picocli-4.2.0.jar" /> <entry name="$MAVEN_REPOSITORY$/info/picocli/picocli/4.2.0/picocli-4.2.0.jar" />
</processorPath> </processorPath>
<module name="unl2rdf-app" /> <module name="unl-tools-app" />
</profile> </profile>
</annotationProcessing> </annotationProcessing>
<bytecodeTargetLevel target="11"> <bytecodeTargetLevel target="11">
<module name="rdf" target="11" />
<module name="unl-parser" target="11" /> <module name="unl-parser" target="11" />
<module name="unl-tools-app" target="11" />
<module name="unl-tools-core" target="11" />
<module name="unl-tools-infrastructure" target="11" />
<module name="unl2rdf" target="11" /> <module name="unl2rdf" target="11" />
<module name="unl2rdf-app" target="11" /> <module name="unl2rdf-app" target="11" />
<module name="unlTools" target="11" />
</bytecodeTargetLevel> </bytecodeTargetLevel>
</component> </component>
<component name="JavacSettings"> <component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE"> <option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="unl-parser" options="" /> <module name="unl-parser" options="" />
<module name="unl-tools-app" options="-Aproject=fr.tetras_libre.unl/unl-tools-app" />
<module name="unl2rdf" options="-Aproject=unl2rdf/unl2rdf" /> <module name="unl2rdf" options="-Aproject=unl2rdf/unl2rdf" />
<module name="unl2rdf-app" options="-Aproject=fr.tetras_libre.unl/unl2rdf-app" /> <module name="unl2rdf-app" options="-Aproject=fr.tetras_libre.unl/unl2rdf-app" />
</option> </option>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="Encoding"> <component name="Encoding">
<file url="file://$PROJECT_DIR$/rdf/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/unl-tools-app/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/rdf/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/unl-tools-app/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/unl-parser/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/unl-tools-core/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/unl2rdf-app/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/unl-tools-infrastructure/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/unl2rdf-app/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/unl-tools-infrastructure/src/main/resources" charset="UTF-8" />
</component> </component>
</project> </project>
\ No newline at end of file
...@@ -7,11 +7,6 @@ ...@@ -7,11 +7,6 @@
<option value="$PROJECT_DIR$/../rdf/pom.xml" /> <option value="$PROJECT_DIR$/../rdf/pom.xml" />
</list> </list>
</option> </option>
<option name="ignoredFiles">
<set>
<option value="$PROJECT_DIR$/pom.xml" />
</set>
</option>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_13" default="false" project-jdk-name="11" project-jdk-type="JavaSDK" /> <component name="ProjectRootManager" version="2" languageLevel="JDK_13" default="false" project-jdk-name="11" project-jdk-type="JavaSDK" />
</project> </project>
\ No newline at end of file
...@@ -2,9 +2,10 @@ ...@@ -2,9 +2,10 @@
<project version="4"> <project version="4">
<component name="ProjectModuleManager"> <component name="ProjectModuleManager">
<modules> <modules>
<module fileurl="file://$PROJECT_DIR$/rdf/rdf.iml" filepath="$PROJECT_DIR$/rdf/rdf.iml" /> <module fileurl="file://$PROJECT_DIR$/unl-tools-app/unl-tools-app.iml" filepath="$PROJECT_DIR$/unl-tools-app/unl-tools-app.iml" />
<module fileurl="file://$PROJECT_DIR$/unl-parser/unl-parser.iml" filepath="$PROJECT_DIR$/unl-parser/unl-parser.iml" /> <module fileurl="file://$PROJECT_DIR$/unl-tools-core/unl-tools-core.iml" filepath="$PROJECT_DIR$/unl-tools-core/unl-tools-core.iml" />
<module fileurl="file://$PROJECT_DIR$/unl2rdf-app/unl2rdf-app.iml" filepath="$PROJECT_DIR$/unl2rdf-app/unl2rdf-app.iml" /> <module fileurl="file://$PROJECT_DIR$/unl-tools-infrastructure/unl-tools-infrastructure.iml" filepath="$PROJECT_DIR$/unl-tools-infrastructure/unl-tools-infrastructure.iml" />
<module fileurl="file://$PROJECT_DIR$/unlTools.iml" filepath="$PROJECT_DIR$/unlTools.iml" />
</modules> </modules>
</component> </component>
</project> </project>
\ No newline at end of file
...@@ -13,10 +13,12 @@ ...@@ -13,10 +13,12 @@
<packaging>pom</packaging> <packaging>pom</packaging>
<name>unl-tools-main</name>
<modules> <modules>
<module>unl-parser</module> <module>unl-tools-core</module>
<module>unl2rdf-app</module> <module>unl-tools-app</module>
<module>rdf</module> <module>unl-tools-infrastructure</module>
</modules> </modules>
<build> <build>
......
package fr.tetras_libre.unltools.rdf.vocabulary;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
class RelationLabelToUnlPropertyConverterTest {
@Test
public void Check(){
var relationLabelToUnlProperty = new RelationLabelToUnlPropertyConverter();
Assertions.assertDoesNotThrow(() -> relationLabelToUnlProperty.getObjectProperty("aoj", null));
}
}
\ No newline at end of file
package fr.tetras_libre.unltools.unl;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
class EqualsBuilderTest {
@Test
void isEqual() {
String s1 = "qdfsf";
int i1 = 1;
long l1 = 2L;
EqualsBuilder builder = new EqualsBuilder()
.append(s1)
.append(i1)
.append(l1);
EqualsBuilder builder2 = new EqualsBuilder()
.append(s1)
.append(i1)
.append(l1);
Assertions.assertTrue(() -> builder.isEqual(builder2));
}
}
\ No newline at end of file
package fr.tetras_libre.unltools.unl.print.dotFile;
import fr.tetras_libre.unltools.unl.*;
import fr.tetras_libre.unltools.unl.parser.UnlParser;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestReporter;
import org.junit.jupiter.api.io.TempDir;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Vector;
import java.util.concurrent.atomic.AtomicReference;
class DotFileBuilderTest {
@TempDir
static Path SharedTempDir;
private TestReporter testReporter;
@Test
public void dotFileBuilderShouldCreateDotFileR1WithoutException(TestReporter testReporter) {
this.testReporter = testReporter;
Path dotPAth = SharedTempDir.resolve("r1.dot");
writeInFile(dotPAth, new R1SentenceWithExpectedDotChecker());
}
@Test
public void dotFileBuilderShouldCreateDotFileWithoutException(TestReporter testReporter) {
this.testReporter = testReporter;
Path dotPAth = SharedTempDir.resolve("r2.dot");
this.writeInFile(dotPAth, new R2SentenceWithExpectedDotChecker());
}
@Test
public void dotFileBuilderShouldCreateDotFileCatWithoutException(TestReporter testReporter) {
this.testReporter = testReporter;
Path dotPAth = SharedTempDir.resolve("cat.dot");
this.writeInFile(dotPAth, new CatSentenceWithExpectedDotChecker());
}
@Test
public void dotFileBuilderShouldCreateDotFileAllWithoutException(TestReporter testReporter) {
this.testReporter = testReporter;
Path dotPAth = SharedTempDir.resolve("all.dot");
this.writeInFile(dotPAth, new AllSetenceWithExpectedDotChecker());
}
private void writeInFile(Path filePath, SentenceWithExpectedDotChecker sentenceChecker) {
// Startup
UnlParser parser = new UnlParser(new BufferedReader(new StringReader(sentenceChecker.getUnlSentence())));
AtomicReference<Vector<UnlDocument>> documentsAtomic = new AtomicReference<>();
Assertions.assertDoesNotThrow(() -> documentsAtomic.set(parser.createUnlDocumentList()));
AtomicReference<File> outFile = new AtomicReference<>();
Assertions.assertDoesNotThrow(() -> outFile.set(new File(filePath.toAbsolutePath().toString())));
AtomicReference<BufferedWriter> outFileWriter = new AtomicReference<>();
Assertions.assertDoesNotThrow(() -> outFileWriter.set(new BufferedWriter(new FileWriter(outFile.get(), false))));
DotFileBuilder dotFileBuilder = new DotFileBuilder(outFileWriter.get());
// Test
Assertions.assertDoesNotThrow(() -> dotFileBuilder.write(documentsAtomic.get()));
// Teardown
Assertions.assertDoesNotThrow(() -> {
outFileWriter.get().flush();
outFileWriter.get().close();
});
Assertions.assertTrue(() -> outFile.get().length() != 0);
Assertions.assertDoesNotThrow(() -> sentenceChecker.setCurrentDotContent(Files.readString(filePath, StandardCharsets.UTF_8)));
sentenceChecker.assetSameAsExpected();
}
}
\ No newline at end of file
...@@ -10,8 +10,7 @@ ...@@ -10,8 +10,7 @@
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</parent> </parent>
<name>main-App</name> <artifactId>unl-tools-app</artifactId>
<artifactId>unl2rdf-app</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
...@@ -101,21 +100,10 @@ ...@@ -101,21 +100,10 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>fr.tetras_libre.unl</groupId> <groupId>fr.tetras_libre.unl</groupId>
<artifactId>unl-parser</artifactId> <artifactId>unl-tools-infrastructure</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>fr.tetras_libre.unl</groupId>
<artifactId>rdf</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.30</version>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
......
package unl2rdf; package unl2rdf;
import fr.tetras_libre.unltools.rdf.vocabulary.RdfFileBuilder;
import fr.tetras_libre.unltools.unl.GraphExporter; import fr.tetras_libre.unltools.unl.GraphExporter;
import fr.tetras_libre.unltools.unl.UnlDocument; import fr.tetras_libre.unltools.unl.UnlDocument;
import fr.tetras_libre.unltools.unl.exporters.DefaultGraphExporterFactory;
import fr.tetras_libre.unltools.unl.exporters.GraphExporterNames;
import fr.tetras_libre.unltools.unl.parser.ParseException; import fr.tetras_libre.unltools.unl.parser.ParseException;
import fr.tetras_libre.unltools.unl.parser.UnlParser; import fr.tetras_libre.unltools.unl.parser.UnlParser;
import fr.tetras_libre.unltools.unl.print.dotFile.DotFileBuilder;
import picocli.CommandLine; import picocli.CommandLine;
import java.io.BufferedReader; import java.io.BufferedReader;
...@@ -14,7 +14,9 @@ import java.io.IOException; ...@@ -14,7 +14,9 @@ import java.io.IOException;
import java.util.Vector; import java.util.Vector;
public class Unl2Rdf { public class Unl2Rdf {
public static void main(String[] args) throws ParseException, IOException {
private static DefaultGraphExporterFactory defaultGraphExporterFactory = new DefaultGraphExporterFactory();
public static void main(String[] args) throws IOException, ParseException {
Options options = new Options(); Options options = new Options();
...@@ -58,13 +60,17 @@ public class Unl2Rdf { ...@@ -58,13 +60,17 @@ public class Unl2Rdf {
} }
private static GraphExporter GetExporter(OutFileType fileType, FileWriter writer) { private static GraphExporter GetExporter(OutFileType fileType, FileWriter writer) {
String exporterName = null;
switch (fileType) { switch (fileType) {
case rdf: case rdf:
return new RdfFileBuilder(writer); exporterName = GraphExporterNames.RDF_EXPORTER;
break;
case dot: case dot:
return new DotFileBuilder(writer); exporterName = GraphExporterNames.DOT_EXPORTER;
break;
} }
throw new IllegalArgumentException(String.format("unknown fileType '%s", fileType.toString()));
return defaultGraphExporterFactory.createGraphExporter(writer, exporterName);
} }
} }
......
...@@ -5,19 +5,15 @@ ...@@ -5,19 +5,15 @@
<output-test url="file://$MODULE_DIR$/target/test-classes" /> <output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" /> <excludeFolder url="file://$MODULE_DIR$/target" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: fr.tetras_libre.rdf:rdf-unl-java-vocabulary:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.slf4j:slf4j-nop:1.7.30" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" name="Maven: info.picocli:picocli:4.2.0" level="project" /> <orderEntry type="library" name="Maven: info.picocli:picocli:4.2.0" level="project" />
<orderEntry type="module" module-name="unl-parser" /> <orderEntry type="module" module-name="unl-tools-infrastructure" />
<orderEntry type="module" module-name="rdf" />
<orderEntry type="library" name="Maven: org.apache.jena:jena-shacl:3.14.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.jena:jena-shacl:3.14.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.jena:jena-arq:3.14.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.jena:jena-arq:3.14.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.jena:jena-core:3.14.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.jena:jena-core:3.14.0" level="project" />
...@@ -49,9 +45,9 @@ ...@@ -49,9 +45,9 @@
<orderEntry type="library" name="Maven: org.apache.jena:jena-dboe-base:3.14.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.jena:jena-dboe-base:3.14.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.jena:jena-dboe-index:3.14.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.jena:jena-dboe-index:3.14.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.jena:jena-rdfconnection:3.14.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.jena:jena-rdfconnection:3.14.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.26" level="project" />
<orderEntry type="library" name="Maven: fr.tetras_libre.rdf:rdf-unl-java-vocabulary:1.0-SNAPSHOT" level="project" /> <orderEntry type="library" name="Maven: fr.tetras_libre.rdf:rdf-unl-java-vocabulary:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.slf4j:slf4j-nop:1.7.30" level="project" /> <orderEntry type="module" module-name="unl-tools-core" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.7.0-M1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.7.0-M1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.0-M1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.0-M1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
......
...@@ -10,8 +10,6 @@ ...@@ -10,8 +10,6 @@
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>unl-parser</artifactId> <artifactId>unl-tools-core</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>Unl-parser</name>
</project> </project>
...@@ -140,4 +140,21 @@ public class Graph { ...@@ -140,4 +140,21 @@ public class Graph {
return strBuilder.toString(); return strBuilder.toString();
} }
@Override
public boolean equals(Object obj) {
if(null == obj) {
return false;
}
if(!(obj instanceof Graph)) {
return false;
}
return equals((Graph) obj);
}
private boolean equals(Graph other){
return this.nodes.equals(other.nodes)
&& this.relations.equals(other.relations);
}
} }
package fr.tetras_libre.unltools.unl;
import java.io.Writer;
public interface GraphExporterFactory {
GraphExporter createGraphExporter(Writer writer, String exporterName);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment