moth

Monarch Of The Hill game server
git clone https://git.woozle.org/neale/moth.git

moth / pkg / transpile
Neale Pickett  ·  2020-10-12

mothball_test.go

 1package transpile
 2
 3import (
 4	"archive/zip"
 5	"bytes"
 6	"io/ioutil"
 7	"os"
 8	"path"
 9	"runtime"
10	"testing"
11
12	"github.com/spf13/afero"
13	"github.com/spf13/afero/zipfs"
14)
15
16func TestMothballsMemFs(t *testing.T) {
17	static := NewFsCategory(newTestFs(), "cat1")
18	mb := new(bytes.Buffer)
19	if err := Mothball(static, mb); err != nil {
20		t.Error(err)
21	}
22}
23
24func TestMothballsOsFs(t *testing.T) {
25	_, testfn, _, _ := runtime.Caller(0)
26	os.Chdir(path.Dir(testfn))
27
28	fs := NewRecursiveBasePathFs(afero.NewOsFs(), "testdata")
29	static := NewFsCategory(fs, "static")
30	mb := new(bytes.Buffer)
31	err := Mothball(static, mb)
32	if err != nil {
33		t.Error(err)
34		return
35	}
36
37	mbReader := bytes.NewReader(mb.Bytes())
38	mbr, err := zip.NewReader(mbReader, int64(mb.Len()))
39	if err != nil {
40		t.Error(err)
41	}
42	zfs := zipfs.New(mbr)
43
44	if f, err := zfs.Open("puzzles.txt"); err != nil {
45		t.Error(err)
46	} else {
47		defer f.Close()
48		if buf, err := ioutil.ReadAll(f); err != nil {
49			t.Error(err)
50		} else if string(buf) != "1\n2\n3\n" {
51			t.Error("Bad puzzles.txt", string(buf))
52		}
53	}
54}