From a2cc032e4057346ccff3650d5c8542e197e6937d Mon Sep 17 00:00:00 2001 From: Ravi Chodavarapu Date: Thu, 6 Oct 2016 08:15:33 +0100 Subject: [PATCH] A simple DB client test --- core/pom.xml | 5 ++ .../datamill/db/impl/DatabaseClientTest.java | 77 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 core/src/test/java/foundation/stack/datamill/db/impl/DatabaseClientTest.java diff --git a/core/pom.xml b/core/pom.xml index 93bf695..d068346 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -111,5 +111,10 @@ jackson-core test + + org.hsqldb + hsqldb + test + diff --git a/core/src/test/java/foundation/stack/datamill/db/impl/DatabaseClientTest.java b/core/src/test/java/foundation/stack/datamill/db/impl/DatabaseClientTest.java new file mode 100644 index 0000000..c2d17fb --- /dev/null +++ b/core/src/test/java/foundation/stack/datamill/db/impl/DatabaseClientTest.java @@ -0,0 +1,77 @@ +package foundation.stack.datamill.db.impl; + +import foundation.stack.datamill.db.DatabaseClient; +import foundation.stack.datamill.reflection.Outline; +import foundation.stack.datamill.reflection.OutlineBuilder; +import org.junit.Test; + +import java.util.List; + +import static org.junit.Assert.assertEquals; + +/** + * @author Ravi Chodavarapu (rchodava@gmail.com) + */ +public class DatabaseClientTest { + private static class Quark { + private String name; + private int spin; + + public String getName() { + return name; + } + + public Quark setName(String name) { + this.name = name; + return this; + } + + public int getSpin() { + return spin; + } + + public Quark setSpin(int spin) { + this.spin = spin; + return this; + } + } + + @Test + public void queries() { + DatabaseClient client = new DatabaseClient("jdbc:hsqldb:mem:test"); + Outline outline = new OutlineBuilder().build(Quark.class); + + client.update("create table quarks(name varchar(64), spin integer)", 0) + .count() + .toBlocking() + .last(); + + client.insertInto(outline).row(rb -> rb + .put(outline.member(m -> m.getName()), "up") + .put(outline.member(m -> m.getSpin()), 1) + .build()) + .count() + .toBlocking() + .last(); + + List quarks = client.selectAll().from(outline).all().getAs(r -> outline.wrap(new Quark()) + .set(p -> p.getName(), r.column(outline.member(m -> m.getName()))) + .set(p -> p.getSpin(), r.column(outline.member(m -> m.getSpin()))) + .unwrap()) + .toBlocking().last(); + + assertEquals(1, quarks.size()); + assertEquals("up", quarks.get(0).getName()); + assertEquals(1, quarks.get(0).getSpin()); + + Quark quark = client.selectAll().from(outline).all().firstAs(r -> outline.wrap(new Quark()) + .set(p -> p.getName(), r.column(outline.member(m -> m.getName()))) + .set(p -> p.getSpin(), r.column(outline.member(m -> m.getSpin()))) + .unwrap()) + .toBlocking().last(); + + assertEquals(1, quarks.size()); + assertEquals("up", quarks.get(0).getName()); + assertEquals(1, quarks.get(0).getSpin()); + } +}