Add semrack index postgresql
All checks were successful
Maven build / build (push) Successful in 3m17s
All checks were successful
Maven build / build (push) Successful in 3m17s
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
package fr.codeanddata.semrack.core;
|
||||
|
||||
import fr.codeanddata.semrack.core.models.IndexSearchResult;
|
||||
import fr.codeanddata.semrack.core.models.SearchRequest;
|
||||
import fr.codeanddata.semrack.core.models.SemrackDocument;
|
||||
import io.quarkus.arc.DefaultBean;
|
||||
import io.smallrye.mutiny.Uni;
|
||||
import jakarta.annotation.Priority;
|
||||
import jakarta.enterprise.context.Dependent;
|
||||
import jakarta.enterprise.inject.Produces;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Dependent
|
||||
public class MockProducer {
|
||||
@Produces
|
||||
@DefaultBean
|
||||
@Priority(100)
|
||||
SemdocStorage produceStorage() {
|
||||
return new SemdocStorage() {
|
||||
@Override
|
||||
public Uni<SemrackDocument> get(String uid) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Uni<List<SemrackDocument>> get(List<String> uids) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Uni<SemrackDocument> storeDocument(SemrackDocument document) {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Produces
|
||||
@DefaultBean
|
||||
@Priority(100)
|
||||
SemdocIndex produceIndex() {
|
||||
return new SemdocIndex() {
|
||||
@Override
|
||||
public Uni<Long> count(SearchRequest request) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Uni<Boolean> exist(SearchRequest query) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Uni<Void> index(String documentId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Uni<IndexSearchResult> search(SearchRequest searchRequest) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Uni<Void> clear(String documentId) {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
name: Semrack Core Testing
|
||||
#description: Do something useful.
|
||||
metadata:
|
||||
# keywords:
|
||||
# - semrack-core
|
||||
# guide: ... # To create and publish this guide, see https://github.com/quarkiverse/quarkiverse/wiki#documenting-your-extension
|
||||
# categories:
|
||||
# - "miscellaneous"
|
||||
# status: "preview"
|
||||
@@ -0,0 +1,54 @@
|
||||
package fr.codeanddata.semrack.core.utils;
|
||||
|
||||
import fr.codeanddata.semrack.core.models.TraverserPath;
|
||||
import io.quarkus.test.junit.QuarkusTest;
|
||||
import jakarta.inject.Inject;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@QuarkusTest
|
||||
public class TraverserTest {
|
||||
|
||||
@Inject
|
||||
Traverser traverser;
|
||||
|
||||
@Test
|
||||
void testUtil() {
|
||||
Assertions.assertNotNull(traverser);
|
||||
final Map<String, Object> user = Map.of(
|
||||
"user", Map.of(
|
||||
"name", "bob",
|
||||
"age", 14,
|
||||
"isAdult", false,
|
||||
"family", List.of(
|
||||
Map.of("name", "mom", "age", 38, "isAdult", true),
|
||||
Map.of("name", "bro", "age", 6, "isAdult", false)
|
||||
)));
|
||||
List<TraverserPath> paths = traverser.apply(user);
|
||||
Assertions.assertNotNull(paths);
|
||||
Assertions.assertEquals(14, paths.size());
|
||||
|
||||
List<List<?>> expectations = List.of(
|
||||
Arrays.asList(".user", null, Traverser.PathTypes.OBJECT),
|
||||
Arrays.asList(".user.age", 14, Traverser.PathTypes.NUMBER),
|
||||
Arrays.asList(".user.family[0].age", 38, Traverser.PathTypes.NUMBER),
|
||||
Arrays.asList(".user.family[0].isAdult", true, Traverser.PathTypes.BOOLEAN),
|
||||
Arrays.asList(".user.family[0].name", "mom", Traverser.PathTypes.STRING),
|
||||
Arrays.asList(".user.family[1].age", 6, Traverser.PathTypes.NUMBER),
|
||||
Arrays.asList(".user.family[1].isAdult", false, Traverser.PathTypes.BOOLEAN),
|
||||
Arrays.asList(".user.family[1].name", "bro", Traverser.PathTypes.STRING),
|
||||
Arrays.asList(".user.isAdult", false, Traverser.PathTypes.BOOLEAN),
|
||||
Arrays.asList(".user.name", "bob", Traverser.PathTypes.STRING)
|
||||
);
|
||||
|
||||
for (List<?> expectation : expectations) {
|
||||
final TraverserPath path = paths.stream().filter(x -> expectation.getFirst().equals(x.getFullPath())).findFirst().orElse(null);
|
||||
Assertions.assertNotNull(path);
|
||||
Assertions.assertEquals(expectation.get(1), path.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user