-
Notifications
You must be signed in to change notification settings - Fork 23
/
test_api.go
125 lines (101 loc) · 2.44 KB
/
test_api.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package api
import (
"github.com/ambientsound/pms/db"
"github.com/ambientsound/pms/input/keys"
"github.com/ambientsound/pms/message"
pms_mpd "github.com/ambientsound/pms/mpd"
"github.com/ambientsound/pms/options"
"github.com/ambientsound/pms/song"
"github.com/ambientsound/pms/songlist"
"github.com/ambientsound/pms/style"
"github.com/fhs/gompd/v2/mpd"
)
type testAPI struct {
messages chan message.Message
options *options.Options
song *song.Song
songlist songlist.Songlist
clipboard songlist.Songlist
db *db.Instance
}
func createTestSong() *song.Song {
s := song.New()
s.SetTags(mpd.Attrs{
"artist": "foo",
"title": "bar",
})
return s
}
func NewTestAPI() API {
return &testAPI{
clipboard: songlist.New(),
messages: make(chan message.Message, 1024),
options: options.New(),
song: createTestSong(),
songlist: songlist.New(),
db: db.New(),
}
}
func (api *testAPI) Clipboard() songlist.Songlist {
return api.clipboard
}
func (api *testAPI) Db() *db.Instance {
return api.db
}
func (api *testAPI) Library() *songlist.Library {
return nil // FIXME
}
func (api *testAPI) ListChanged() {
// FIXME
}
func (api *testAPI) Message(fmt string, a ...interface{}) {
api.messages <- message.Format(fmt, a...)
}
func (api *testAPI) MpdClient() *mpd.Client {
return nil // FIXME
}
func (api *testAPI) Multibar() MultibarWidget {
return nil // FIXME
}
func (api *testAPI) OptionChanged(key string) {
// FIXME
}
func (api *testAPI) Options() *options.Options {
return api.options
}
func (api *testAPI) PlayerStatus() pms_mpd.PlayerStatus {
return api.db.PlayerStatus()
}
func (api *testAPI) Queue() *songlist.Queue {
return nil // FIXME
}
func (api *testAPI) Quit() {
return // FIXME
}
func (api *testAPI) Sequencer() *keys.Sequencer {
return nil // FIXME
}
// SetPlayerStatus sets the player status struct to the provided input
// value, allowing to construct test cases that depend on a particular
// player status
//func (api *testAPI) SetPlayerStatus(p pms_mpd.PlayerStatus) {
//api.status = p
//}
func (api *testAPI) Song() *song.Song {
return api.song
}
func (api *testAPI) Songlist() songlist.Songlist {
return api.songlist
}
func (api *testAPI) Songlists() []songlist.Songlist {
return nil // FIXME
}
func (api *testAPI) SonglistWidget() SonglistWidget {
return nil // FIXME
}
func (api *testAPI) Styles() style.Stylesheet {
return nil // FIXME
}
func (api *testAPI) UI() UI {
return nil // FIXME
}