Newer
Older
simple-database / test / nl / astraeus / database / sql / TestCreate.java
rnentjes on 11 Dec 2016 1 KB Optimize imports
package nl.astraeus.database.sql;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import nl.astraeus.database.ColumnInfo;
import nl.astraeus.template.EscapeMode;
import nl.astraeus.template.SimpleTemplate;
import nl.astraeus.util.Util;

import org.junit.Assert;
import org.junit.Test;

/**
 * Date: 11/14/13
 * Time: 9:29 PM
 */
public class TestCreate {

/*
    create table ${tableName} (${key} BIGINT AUTO_INCREMENT,${each(columns as column)}
    ${column.name} ${column.type},${/each}
    primary key(${key})
            )
*/


    @Test
    public void testCreate() throws IOException {
        String ct = Util.readAsString(getClass().getResourceAsStream("def/create.sql"));

        SimpleTemplate template = new SimpleTemplate("${", "}", EscapeMode.NONE, ct);

        Map<String, Object> model = new HashMap<>();

        List<ColumnInfo> columns = new ArrayList<>();
        List<String> keys = new ArrayList<>();

        columns.add(new ColumnInfo("name", "VARCHAR(255)"));
        columns.add(new ColumnInfo("age", "SMALLINT"));

        keys.add("name");

        model.put("tableName", "person");
        model.put("key", "name");
        model.put("columns", columns);
        model.put("keys", keys);

        Assert.assertEquals("create table person (name BIGINT AUTO_INCREMENT,\n" +
                "    name VARCHAR(255),\n" +
                "    age SMALLINT,\n" +
                "    primary key(name)\n" +
                ")\n", template.render(model));
    }
}