95 lines
2.7 KiB
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);
|
|
}
|
|
}
|