rss2twitter/app/rss/notify_test.go
2019-01-09 01:51:55 -06:00

48 行
1.1 KiB
Go
Raw Blame 履歴

このファイルには曖昧(ambiguous)なUnicode文字が含まれています

このファイルには、他の文字と見間違える可能性があるUnicode文字が含まれています。 それが意図的なものと考えられる場合は、この警告を無視して構いません。 それらの文字を表示するにはエスケープボタンを使用します。

package rss
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"net/http/httptest"
"sync/atomic"
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestNotify(t *testing.T) {
var n int32
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fnum := atomic.AddInt32(&n, int32(1))
if fnum > 2 {
fnum = 2
}
data, err := ioutil.ReadFile(fmt.Sprintf("testdata/f%d.xml", fnum))
require.NoError(t, err)
w.WriteHeader(200)
w.Write(data)
}))
defer ts.Close()
notify := Notify{Feed: ts.URL, Duration: time.Millisecond * 250, Timeout: time.Millisecond * 100}
ch := notify.Go(context.Background())
defer notify.Shutdown()
st := time.Now()
e := <-ch
t.Logf("%+v", e)
e.Text = ""
assert.Equal(t, Event{ChanTitle: "Радио-Т", Title: "Радио-Т 626",
Link: "https://radio-t.com/p/2018/12/01/podcast-626/", GUID: "https://radio-t.com/p/2018/12/01//podcast-626/"}, e)
assert.True(t, time.Since(st) >= time.Millisecond*250)
select {
case <-ch:
t.Fatal("should not get any more")
default:
}
}