Newer
Older
simple-database / test / nl / astraeus / database / sql / TestUpdate.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.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 TestUpdate {

/*
    update ${tableName}
    set ${each(columns as column)}${column} = ?,
    ${eachlast}${column} = ?${/each}
    where ${key} = ?
*/

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

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

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

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

        columns.add("address");
        columns.add("age");
        columns.add("zip");
        columns.add("comment");

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

        Assert.assertEquals("update person\n" +
                "  set address = ?,\n" +
                "      age = ?,\n" +
                "      zip = ?,\n" +
                "      comment = ?\n" +
                "  where id = ?\n", template.render(model));
    }

}