/
database_test.go
54 lines (43 loc) · 1.14 KB
/
database_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package geneddl
import (
"encoding/json"
"strings"
"testing"
"github.com/cihangir/gene/generators/common"
"github.com/cihangir/gene/testdata"
"github.com/cihangir/schema"
"github.com/cihangir/stringext"
)
func TestDatabase(t *testing.T) {
s := &schema.Schema{}
err := json.Unmarshal([]byte(testdata.TestDataFull), s)
common.TestEquals(t, nil, err)
s = s.Resolve(s)
moduleName := strings.ToLower(s.Title)
settings := GenerateSettings(GeneratorName, moduleName, s)
index := 0
for _, def := range s.Definitions {
// schema should have our generator
if !def.Generators.Has(GeneratorName) {
continue
}
settingsDef := SetDefaultSettings(GeneratorName, settings, def)
settingsDef.Set("tableName", stringext.ToFieldName(def.Title))
sts, err := DefineDatabase(settingsDef, def)
if err != nil {
t.Fatal(err.Error())
}
common.TestEquals(t, expectedDatabases[index], string(sts))
index++
}
}
var expectedDatabases = []string{
`--
-- Clear previously created database
--
DROP DATABASE IF EXISTS "mydatabase";
--
-- Create database itself
--
CREATE DATABASE "mydatabase" OWNER "social" ENCODING 'UTF8' TEMPLATE template0;`,
}