func TestPublish(t *testing.T) { // Custom config c := newTestConfig() // Set custom options for default namespace c.ChannelOptions.HistoryLifetime = 10 c.ChannelOptions.HistorySize = 2 c.ChannelOptions.HistoryDropInactive = true app := testMemoryAppWithConfig(&c) createTestClients(app, 10, 1, nil) data, _ := json.Marshal(map[string]string{"test": "publish"}) err := app.Publish(Channel("channel-0"), data, ConnID(""), nil) assert.Nil(t, err) // Check publish to subscribed channels did result in saved history hist, err := app.History(Channel("channel-0")) assert.Nil(t, err) assert.Equal(t, 1, len(hist)) // Publishing to a channel no one is subscribed to should be a no-op err = app.Publish(Channel("some-other-channel"), data, ConnID(""), nil) assert.Nil(t, err) hist, err = app.History(Channel("some-other-channel")) assert.Nil(t, err) assert.Equal(t, 0, len(hist)) }
// make directories for testing func initDirs(t *testing.T) (string, string, func()) { var ( testDirs = []string{`a a`, `b`, `c\c`, `D_`} config = `improbable` ) root, err := ioutil.TempDir("", "") cleanup := true defer func() { if cleanup { os.Chdir("..") os.RemoveAll(root) } }() assert.Nil(t, err) err = os.Chdir(root) assert.Nil(t, err) for _, dir := range testDirs { err = os.Mkdir(dir, 0750) assert.Nil(t, err) err = ioutil.WriteFile( path.Join(dir, config+".toml"), []byte("key = \"value is "+dir+"\"\n"), 0640) assert.Nil(t, err) } cleanup = false return root, config, func() { os.Chdir("..") os.RemoveAll(root) } }
func TestRedisChannels(t *testing.T) { c := dial() defer c.close() app := testRedisApp() err := app.Run() assert.Nil(t, err) channels, err := app.engine.channels() assert.Equal(t, nil, err) assert.Equal(t, 0, len(channels)) createTestClients(app, 10, 1, nil) channels, err = app.engine.channels() assert.Equal(t, nil, err) assert.Equal(t, 10, len(channels)) }
func TestDirsSearch(t *testing.T) { root, config, cleanup := initDirs(t) defer cleanup() v := New() v.SetConfigName(config) v.SetDefault(`key`, `default`) entries, err := ioutil.ReadDir(root) for _, e := range entries { if e.IsDir() { v.AddConfigPath(e.Name()) } } err = v.ReadInConfig() assert.Nil(t, err) assert.Equal(t, `value is `+path.Base(v.configPaths[0]), v.GetString(`key`)) }