CavalliumDBEngine-Server/src/test/java/it/cavallium/dbengine/database/server/LLQuicConnectionTest.java

103 lines
3.2 KiB
Java
Raw Normal View History

2022-04-09 02:45:57 +02:00
package it.cavallium.dbengine.database.server;
2022-03-06 12:22:50 +01:00
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import io.micrometer.core.instrument.composite.CompositeMeterRegistry;
2022-10-02 03:10:38 +02:00
import io.netty5.buffer.BufferAllocator;
import io.netty5.buffer.DefaultBufferAllocators;
2022-03-06 12:22:50 +01:00
import it.cavallium.data.generator.nativedata.Nullableboolean;
2022-03-09 12:59:12 +01:00
import it.cavallium.data.generator.nativedata.Nullabledouble;
2022-03-06 12:22:50 +01:00
import it.cavallium.data.generator.nativedata.Nullableint;
2022-04-09 02:45:57 +02:00
import it.cavallium.dbengine.client.DefaultDatabaseOptions;
2022-03-06 12:22:50 +01:00
import it.cavallium.dbengine.client.IndicizerAnalyzers;
import it.cavallium.dbengine.client.IndicizerSimilarities;
import it.cavallium.dbengine.database.ColumnUtils;
import it.cavallium.dbengine.database.LLDatabaseConnection;
2022-07-02 12:28:59 +02:00
import it.cavallium.dbengine.database.LLUtils;
2022-03-07 01:42:10 +01:00
import it.cavallium.dbengine.lucene.LuceneUtils;
2022-03-06 12:22:50 +01:00
import it.cavallium.dbengine.rpc.current.data.ByteBuffersDirectory;
import it.cavallium.dbengine.rpc.current.data.LuceneOptions;
import java.time.Duration;
import java.util.List;
import java.util.Map;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class LLQuicConnectionTest {
private BufferAllocator allocator;
private CompositeMeterRegistry meterRegistry;
private TestDbServer server;
private LLDatabaseConnection client;
@BeforeEach
void setUp() {
this.allocator = DefaultBufferAllocators.preferredAllocator();
this.meterRegistry = new CompositeMeterRegistry();
this.server = TestDbServer.create(allocator, meterRegistry);
2022-07-02 12:28:59 +02:00
server.bind().transform(LLUtils::handleDiscard).block();
2022-03-06 12:22:50 +01:00
this.client = TestDbClient.create(allocator, meterRegistry, server.address()).connect().block();
}
@AfterEach
void tearDown() {
if (client != null) {
client.disconnect().block();
}
if (server != null) {
server.dispose().block();
}
}
@Test
void getAllocator() {
assertEquals(allocator, client.getAllocator());
}
@Test
void getMeterRegistry() {
assertEquals(meterRegistry, client.getMeterRegistry());
}
@Test
void getDatabase() {
var dbName = "test-temp-db";
var singletonsColumnName = "singletons";
var db = client.getDatabase(dbName,
List.of(ColumnUtils.special(singletonsColumnName)),
2022-04-09 02:45:57 +02:00
DefaultDatabaseOptions.DEFAULT_DATABASE_OPTIONS
2022-03-06 12:22:50 +01:00
).blockOptional().orElseThrow();
assertEquals(dbName, db.getDatabaseName());
assertEquals(allocator, db.getAllocator());
assertEquals(meterRegistry, db.getMeterRegistry());
assertDoesNotThrow(() -> db.close().block());
}
@Test
void getLuceneIndex() {
var shardName = "test-lucene-shard";
var index = client.getLuceneIndex(shardName,
2022-03-07 01:42:10 +01:00
LuceneUtils.singleStructure(),
2022-03-06 12:22:50 +01:00
IndicizerAnalyzers.of(),
IndicizerSimilarities.of(),
new LuceneOptions(Map.of(),
Duration.ofSeconds(1),
Duration.ofSeconds(1),
false,
new ByteBuffersDirectory(),
2022-03-09 12:59:12 +01:00
Nullableboolean.empty(),
Nullabledouble.empty(),
Nullableint.empty(),
Nullableboolean.empty(),
Nullableboolean.empty(),
2022-03-06 12:22:50 +01:00
false,
2022-06-22 12:02:52 +02:00
100,
LuceneUtils.getDefaultMergePolicy()
2022-03-06 12:22:50 +01:00
),
null).blockOptional().orElseThrow();
assertEquals(shardName, index.getLuceneIndexName());
2022-06-30 15:06:28 +02:00
assertDoesNotThrow(index::close);
2022-03-06 12:22:50 +01:00
}
}