118 lines
1.9 KiB
Go
118 lines
1.9 KiB
Go
package resource
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
v1 "k8s.io/api/core/v1"
|
|
)
|
|
|
|
func TestPodStatuses(t *testing.T) {
|
|
type counts struct {
|
|
ready, terminated, restarts int
|
|
}
|
|
|
|
uu := []struct {
|
|
s []v1.ContainerStatus
|
|
e counts
|
|
}{
|
|
{
|
|
[]v1.ContainerStatus{
|
|
{
|
|
Name: "c1",
|
|
Ready: true,
|
|
State: v1.ContainerState{
|
|
Running: &v1.ContainerStateRunning{},
|
|
},
|
|
},
|
|
{
|
|
Name: "c2",
|
|
Ready: false,
|
|
RestartCount: 10,
|
|
State: v1.ContainerState{
|
|
Terminated: &v1.ContainerStateTerminated{},
|
|
},
|
|
},
|
|
},
|
|
counts{1, 1, 10},
|
|
},
|
|
}
|
|
|
|
var p Pod
|
|
for _, u := range uu {
|
|
cr, ct, cs := p.statuses(u.s)
|
|
assert.Equal(t, u.e.ready, cr)
|
|
assert.Equal(t, u.e.terminated, ct)
|
|
assert.Equal(t, u.e.restarts, cs)
|
|
}
|
|
}
|
|
|
|
func TestPodPhase(t *testing.T) {
|
|
uu := []struct {
|
|
s v1.PodStatus
|
|
e string
|
|
}{
|
|
{
|
|
v1.PodStatus{
|
|
ContainerStatuses: []v1.ContainerStatus{
|
|
{
|
|
Name: "c1",
|
|
State: v1.ContainerState{
|
|
Running: &v1.ContainerStateRunning{},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"Running",
|
|
},
|
|
{
|
|
v1.PodStatus{
|
|
ContainerStatuses: []v1.ContainerStatus{
|
|
{
|
|
Name: "c1",
|
|
State: v1.ContainerState{
|
|
Waiting: &v1.ContainerStateWaiting{
|
|
Reason: "blee",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"blee",
|
|
},
|
|
{
|
|
v1.PodStatus{
|
|
ContainerStatuses: []v1.ContainerStatus{
|
|
{
|
|
Name: "c1",
|
|
State: v1.ContainerState{
|
|
Terminated: &v1.ContainerStateTerminated{},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"Terminating",
|
|
},
|
|
{
|
|
v1.PodStatus{
|
|
ContainerStatuses: []v1.ContainerStatus{
|
|
{
|
|
Name: "c1",
|
|
State: v1.ContainerState{
|
|
Terminated: &v1.ContainerStateTerminated{
|
|
Reason: "blee",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"blee",
|
|
},
|
|
}
|
|
|
|
var p Pod
|
|
for _, u := range uu {
|
|
assert.Equal(t, u.e, p.phase(u.s))
|
|
}
|
|
}
|