strangedb-server/src/test/java/it/cavallium/strangedb/server/GetSetExistsTest.java

95 lines
2.7 KiB
Java

package it.cavallium.strangedb.server;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import static org.junit.jupiter.api.Assertions.*;
public class GetSetExistsTest {
private Path path1;
private Path path2;
private Path path3;
private DatabaseSimple db;
@BeforeEach
public void setUp() throws Exception {
path1 = Files.createTempFile("db-tests-", ".db");
path2 = Files.createTempFile("db-tests-", ".db");
path3 = Files.createTempFile("db-tests-", ".db");
db = new DatabaseSimple(path1, path2, path3);
}
@Test
public void shouldSetObject() throws IOException {
assertTrue(db.exists(""));
assertEquals(db.get(""), "{}");
db.set("", "{}");
assertTrue(db.exists(""));
assertEquals(db.get(""), "{}");
db.set("value", "{}");
db.set("value.int", "12");
db.set("value.number", "12.13");
db.set("value.null", "null");
db.set("value.boolean", "true");
db.set("value.undefined", "undefined");
db.set("value.string", "\"test\"");
db.set("value.array", "[1,2,3,4,5]");
db.set("value.object", "{a: 1, b: \"2\", c: [3], d: {}}");
}
@Test
public void shouldGetObject() throws IOException {
db.set("", "{\n" +
"\t\"value\": {\n" +
"\t\t\"int\": 12,\n" +
"\t\t\"number\": 12.13," +
"nil: null,\n" +
"\t\t\"boolean\": true,\n" +
"\t\t\"string\": \"test\",\n" +
"\t\t\"array\": [1,2,3,4],\n" +
"\t\t\"object\": {\n" +
"\t\t\t\"a\": 1,\n" +
"\t\t\t\"b\": \"2\",\n" +
"\t\t\t\"c\": [3],\n" +
"\t\t\t\"d\": {}\n" +
"\t\t}\n" +
"\t}\n" +
"}");
assertFalse(db.exists("random"));
assertTrue(db.exists("value"));
assertEquals("12", db.get("value.int"));
assertEquals("12.13", db.get("value.number"));
assertEquals("null", db.get("value.nil"));
assertEquals("true", db.get("value.boolean"));
assertEquals("\"test\"", db.get("value.string"));
assertEquals("[1,2,3,4]", db.get("value.array"));
assertEquals("1", db.get("value.object.a"));
assertEquals("\"2\"", db.get("value.object.b"));
assertEquals("[3]", db.get("value.object.c"));
assertEquals("{}", db.get("value.object.d"));
}
@Test
public void shouldGetSize() throws IOException {
db.set("", "{array:[1,2,3,4,5], object: {a: 1, b: 2, c: 3}, string: \"test\"}");
assertEquals(5, db.size("array"));
assertEquals(3, db.size("object"));
assertThrows(NullPointerException.class, () -> db.size("test"));
}
@AfterEach
public void tearDown() throws Exception {
db.close();
Files.deleteIfExists(path1);
Files.deleteIfExists(path2);
Files.deleteIfExists(path3);
}
}