debian-forge-composer/internal/compose/compose_test.go
Martin Sehnoutka eb6c0f6fce compose: refactor compose related structure into its own package
The store package is getting too big and convoluted, this new package
will help with separation of the compose logic from our current
implementation of the store.

The current implementation will be removed in following commits.
2020-02-12 11:17:26 +01:00

125 lines
No EOL
2.4 KiB
Go

package compose
import (
"github.com/osbuild/osbuild-composer/internal/common"
"testing"
)
func TestGetState(t *testing.T) {
cases := []struct{
compose Compose
expecedStatus common.ComposeState
}{
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBWaiting},
},
},
expecedStatus: common.CWaiting,
},
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBRunning},
},
},
expecedStatus: common.CRunning,
},
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBFailed},
},
},
expecedStatus: common.CFailed,
},
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBFinished},
},
},
expecedStatus: common.CFinished,
},
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBWaiting},
{QueueStatus: common.IBWaiting},
},
},
expecedStatus: common.CWaiting,
},
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBWaiting},
{QueueStatus: common.IBRunning},
},
},
expecedStatus: common.CRunning,
},
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBRunning},
{QueueStatus: common.IBRunning},
},
},
expecedStatus: common.CRunning,
},
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBRunning},
{QueueStatus: common.IBFailed},
},
},
expecedStatus: common.CRunning,
},
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBWaiting},
{QueueStatus: common.IBFailed},
},
},
expecedStatus: common.CRunning,
},
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBFailed},
{QueueStatus: common.IBFailed},
},
},
expecedStatus: common.CFailed,
},
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBFinished},
{QueueStatus: common.IBFinished},
},
},
expecedStatus: common.CFinished,
},
{
compose: Compose{
ImageBuilds: []ImageBuild{
{QueueStatus: common.IBFinished},
{QueueStatus: common.IBFailed},
},
},
expecedStatus: common.CFailed,
},
}
for n, c := range cases {
got := c.compose.GetState()
wanted := c.expecedStatus
if got != wanted {
t.Error("Compose", n, "should be in", wanted.ToString(), "state, but it is:", got.ToString())
}
}
}