source-aware playback statuses.
This commit is contained in:
@@ -5,7 +5,14 @@ import "testing"
|
||||
func TestIsSessionPlaying(t *testing.T) {
|
||||
const generation = 4
|
||||
playing := func(unit Unit) Status {
|
||||
return Status{Unit: unit, State: StatePlaying, Generation: generation}
|
||||
status := Status{Unit: unit, State: StatePlaying, Generation: generation}
|
||||
switch unit {
|
||||
case UnitVideo:
|
||||
status.Feed = FeedConfig{UUID: "video"}
|
||||
case UnitAudio:
|
||||
status.Feed = FeedConfig{UUID: "audio"}
|
||||
}
|
||||
return status
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -171,6 +178,72 @@ func TestIsSessionPlaying(t *testing.T) {
|
||||
HasSync: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "video status has wrong UUID",
|
||||
session: SessionSnapshot{
|
||||
Generation: generation,
|
||||
Plan: SessionPlan{
|
||||
Topology: TopologyIndependent,
|
||||
Video: FeedConfig{Domain: "domain", UUID: "video", Active: true},
|
||||
},
|
||||
},
|
||||
statuses: PlaybackStatusSnapshot{
|
||||
Generation: generation,
|
||||
Video: Status{
|
||||
Unit: UnitVideo,
|
||||
State: StatePlaying,
|
||||
Generation: generation,
|
||||
Feed: FeedConfig{Domain: "domain", UUID: "other"},
|
||||
},
|
||||
HasVideo: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "audio status has wrong domain",
|
||||
session: SessionSnapshot{
|
||||
Generation: generation,
|
||||
Plan: SessionPlan{
|
||||
Topology: TopologyIndependent,
|
||||
Audio: FeedConfig{Domain: "audio-domain", UUID: "audio", Active: true},
|
||||
},
|
||||
},
|
||||
statuses: PlaybackStatusSnapshot{
|
||||
Generation: generation,
|
||||
Audio: Status{
|
||||
Unit: UnitAudio,
|
||||
State: StatePlaying,
|
||||
Generation: generation,
|
||||
Feed: FeedConfig{Domain: "other-domain", UUID: "audio"},
|
||||
},
|
||||
HasAudio: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "sync status has wrong audio source",
|
||||
session: SessionSnapshot{
|
||||
Generation: generation,
|
||||
Plan: SessionPlan{
|
||||
Topology: TopologySynchronized,
|
||||
Sync: SyncPairConfig{
|
||||
Video: FeedConfig{Domain: "domain", UUID: "video"},
|
||||
Audio: FeedConfig{Domain: "domain", UUID: "audio"},
|
||||
},
|
||||
},
|
||||
},
|
||||
statuses: PlaybackStatusSnapshot{
|
||||
Generation: generation,
|
||||
Sync: Status{
|
||||
Unit: UnitSync,
|
||||
State: StatePlaying,
|
||||
Generation: generation,
|
||||
Pair: SyncPairConfig{
|
||||
Video: FeedConfig{Domain: "domain", UUID: "video"},
|
||||
Audio: FeedConfig{Domain: "domain", UUID: "other-audio"},
|
||||
},
|
||||
},
|
||||
HasSync: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "idle",
|
||||
session: SessionSnapshot{
|
||||
|
||||
Reference in New Issue
Block a user