1
0
forked from MTSR/mapserver
mapserver/server/mapobjectdb/sqlite_test.go

122 lines
1.7 KiB
Go
Raw Normal View History

2019-01-21 17:13:33 +03:00
package mapobjectdb
2019-01-14 14:38:26 +03:00
import (
"io/ioutil"
2019-01-16 18:36:28 +03:00
"mapserver/coords"
2019-01-14 14:38:26 +03:00
"os"
2019-01-25 13:02:36 +03:00
"fmt"
2019-01-14 14:38:26 +03:00
"testing"
)
func TestMigrate(t *testing.T) {
2019-01-17 10:01:48 +03:00
tmpfile, err := ioutil.TempFile("", "TileDBTest.*.sqlite")
2019-01-14 14:38:26 +03:00
if err != nil {
panic(err)
}
defer os.Remove(tmpfile.Name())
db, err := NewSqliteAccessor(tmpfile.Name())
if err != nil {
panic(err)
}
err = db.Migrate()
if err != nil {
panic(err)
}
2019-01-14 14:48:46 +03:00
2019-01-17 10:53:07 +03:00
pos := coords.NewTileCoords(0, 0, 13, 0)
tile, err := db.GetTile(pos)
2019-01-14 14:48:46 +03:00
if err != nil {
panic(err)
}
2019-01-17 10:01:48 +03:00
if tile != nil {
t.Fatal("non-empty tile found")
}
data := []byte{0x01, 0x02}
2019-01-17 10:53:07 +03:00
tile2 := Tile{Pos: pos, Data: data}
2019-01-17 10:01:48 +03:00
err = db.SetTile(&tile2)
if err != nil {
panic(err)
}
2019-01-17 10:53:07 +03:00
tile3, err := db.GetTile(pos)
2019-01-17 10:01:48 +03:00
if err != nil {
panic(err)
}
if tile3 == nil {
t.Fatal("no data returned")
}
if len(tile2.Data) != len(tile3.Data) {
t.Fatal("inserted data does not match")
}
err = db.SetTile(&tile2)
2019-01-16 18:36:28 +03:00
if err != nil {
panic(err)
}
2019-01-14 14:48:46 +03:00
2019-01-14 14:38:26 +03:00
}
2019-01-23 16:23:24 +03:00
func TestMapObjects(t *testing.T) {
tmpfile, err := ioutil.TempFile("", "TestMapObjects.*.sqlite")
if err != nil {
panic(err)
}
2019-01-24 16:04:52 +03:00
//defer os.Remove(tmpfile.Name())
2019-01-23 16:23:24 +03:00
db, err := NewSqliteAccessor(tmpfile.Name())
if err != nil {
panic(err)
}
err = db.Migrate()
if err != nil {
panic(err)
}
attrs := make(map[string]string)
attrs["X"] = "y"
2019-01-23 18:06:56 +03:00
pos := coords.NewMapBlockCoords(0, 0, 0)
2019-01-23 16:23:24 +03:00
o := MapObject{
2019-01-23 18:06:56 +03:00
MBPos: &pos,
X: 1,
Y: 2,
Z: 3,
Type: "xy",
Mtime: 1234,
2019-01-23 16:23:24 +03:00
Attributes: attrs,
}
2019-01-24 10:26:28 +03:00
err = db.AddMapData(&o)
2019-01-23 16:23:24 +03:00
if err != nil {
panic(err)
}
2019-01-25 12:39:17 +03:00
q := SearchQuery{
Pos1: pos,
Pos2: pos,
Type: "xy",
}
2019-01-25 13:02:36 +03:00
objs, err := db.GetMapData(q)
2019-01-25 12:39:17 +03:00
if err != nil {
panic(err)
}
2019-01-25 13:02:36 +03:00
for _, mo := range objs {
fmt.Println(mo)
}
2019-01-25 12:39:17 +03:00
2019-01-23 16:23:24 +03:00
}