CreateTableTest.java 1.52 KB
package fi.codecrew.moya.sql;

import org.testng.Assert;
import org.testng.annotations.Test;

@Test
public class CreateTableTest {

    @Test
    void testCreateSimpleTable() {
        String expectedSql = "CREATE TABLE taulu (id serial NOT NULL PRIMARY KEY, numero integer);";
        String actualSql = new DDLBuilder()
                .createTable("taulu")
                .serialPK("id")
                .integerField("numero", true)
                .toString();
        Assert.assertEquals(actualSql, expectedSql);
    }

    @Test
    void testCreateVipTable() {
        String actual = new DDLBuilder().createTable("vips")
                .serialPK("id")
                .text("description", false)
                .timestampTZ("created", false, "default", "now()")
                .reference("event_id", false, "events")
                .reference("vip_event_user_id", true, "event_users")
                .reference("creator_event_user_id", false, "event_users")
                .reference("host_event_user_id", false, "event_users")
                .field("meta", "json", true)
                .toString();
        String expected = "CREATE TABLE vips (id serial NOT NULL PRIMARY KEY, description text NOT NULL, created timestamptz NOT NULL default now(), event_id integer NOT NULL REFERENCES events, vip_event_user_id integer REFERENCES event_users, creator_event_user_id integer NOT NULL REFERENCES event_users, host_event_user_id integer NOT NULL REFERENCES event_users, meta json);";
        Assert.assertEquals(actual, expected);
    }
}