MyTinyTodo2/mytinytodo/buffer_test.go

60 lines
1.1 KiB
Go

package mytinytodo
import (
"net/http"
"net/http/httptest"
"os"
"testing"
"time"
)
func TestNewBuffer(t *testing.T) {
b, s := mockBuffer(t)
defer b.Close()
defer s.Close()
}
func TestBufferEnqueue(t *testing.T) {
t.Fatal("not implemented")
}
func TestBufferDequeue(t *testing.T) {
t.Fatal("not implemented")
}
func TestBufferRefreshLocal(t *testing.T) {
t.Fatal("not implemented")
}
func TestBufferNotDoneCallback(t *testing.T) {
b := &Buffer{
done: make(chan struct{}),
interval: time.Millisecond * 70,
}
called := make(chan struct{})
go b.notDoneCallback(func() {
called <- struct{}{}
})
<-called
close(b.done)
}
func mockBuffer(t *testing.T) (*Buffer, *httptest.Server) {
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
}))
osArgsWas := os.Args[:]
os.Args = []string{"skip", "-remote", srv.URL, "-p", ""}
defer func() {
os.Args = osArgsWas[:]
}()
config, err := NewConfig()
if err != nil {
t.Fatalf("cannot get new config: %v", err)
}
buff, err := NewBuffer(config)
if err != nil {
t.Fatalf("cannot get new buffer: %v", err)
}
return buff, srv
}