test with stream

master
Bel LaPointe 2021-02-07 13:03:17 -06:00
parent 39ddc93e2f
commit 246008d83b
1 changed files with 57 additions and 54 deletions

View File

@ -4,6 +4,7 @@ import (
"bytes"
"fmt"
"io/ioutil"
"local/storage"
"log"
"os"
"path"
@ -12,66 +13,68 @@ import (
)
func TestLastN(t *testing.T) {
d, clean := makeJunk(t)
defer clean()
for _, storeName := range []string{storage.MAP.String(), storage.MAPSTREAM.String()} {
d, clean := makeJunk(t)
defer clean()
conf := Config{
N: 3,
Ns: "b",
Root: d,
Store: "map",
}
lastn, err := New(conf)
if err != nil {
t.Fatal(err)
}
if err := lastn.Push(); err != nil {
t.Fatal(err)
}
was := log.Writer()
buff := bytes.NewBuffer(nil)
log.SetOutput(buff)
defer log.SetOutput(was)
if err := lastn.List(); err != nil {
t.Fatal(err)
} else if !bytes.Contains(buff.Bytes(), []byte(time.Now().Format("2006.01.02"))) {
t.Fatal(string(buff.Bytes()))
}
log.SetOutput(was)
restored := path.Join(d+"-restore", path.Base(d))
if err := lastn.Restore(); err != nil {
t.Fatal(err)
} else if _, err := os.Stat(restored); os.IsNotExist(err) {
t.Fatal(err)
} else if err != nil {
t.Fatal(err)
} else if files, err := ioutil.ReadDir(restored); err != nil {
t.Fatal(err)
} else if len(files) != 3 {
t.Fatal(len(files))
} else {
for _, file := range files {
if b, err := ioutil.ReadFile(path.Join(restored, file.Name())); err != nil {
t.Fatal(err)
} else if v := string(b); v != "hi" {
t.Fatal(v)
}
conf := Config{
N: 3,
Ns: "b",
Root: d,
Store: storeName,
}
lastn, err := New(conf)
if err != nil {
t.Fatal(err)
}
}
for i := 0; i < 10; i++ {
if err := lastn.Push(); err != nil {
t.Fatal(err)
}
}
if saved, err := lastn.store.List([]string{lastn.conf.Ns}); err != nil {
t.Fatal(err)
} else if len(saved) != 11 {
t.Fatal(len(saved))
was := log.Writer()
buff := bytes.NewBuffer(nil)
log.SetOutput(buff)
defer log.SetOutput(was)
if err := lastn.List(); err != nil {
t.Fatal(err)
} else if !bytes.Contains(buff.Bytes(), []byte(time.Now().Format("2006.01.02"))) {
t.Fatal(string(buff.Bytes()))
}
log.SetOutput(was)
restored := path.Join(d+"-restore", path.Base(d))
if err := lastn.Restore(); err != nil {
t.Fatal(err)
} else if _, err := os.Stat(restored); os.IsNotExist(err) {
t.Fatal(err)
} else if err != nil {
t.Fatal(err)
} else if files, err := ioutil.ReadDir(restored); err != nil {
t.Fatal(err)
} else if len(files) != 3 {
t.Fatal(len(files))
} else {
for _, file := range files {
if b, err := ioutil.ReadFile(path.Join(restored, file.Name())); err != nil {
t.Fatal(err)
} else if v := string(b); v != "hi" {
t.Fatal(v)
}
}
}
for i := 0; i < 10; i++ {
if err := lastn.Push(); err != nil {
t.Fatal(err)
}
}
if saved, err := lastn.store.List([]string{lastn.conf.Ns}); err != nil {
t.Fatal(err)
} else if len(saved) != 11 {
t.Fatal(len(saved))
}
}
}