...
1
2
3
4 package task
5
6 import (
7 "bytes"
8 "sync"
9 "testing"
10
11 "github.com/stretchr/testify/assert"
12 "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
13 "sigs.k8s.io/cli-utils/pkg/apply/event"
14 )
15
16 func TestKubectlPrinterAdapter(t *testing.T) {
17 ch := make(chan event.Event)
18 buffer := bytes.Buffer{}
19 operation := "serverside-applied"
20
21 adapter := KubectlPrinterAdapter{
22 ch: ch,
23 groupName: "test-0",
24 }
25
26 toPrinterFunc := adapter.toPrinterFunc()
27 resourcePrinter, err := toPrinterFunc(operation)
28 assert.NoError(t, err)
29
30 deployment := &unstructured.Unstructured{
31 Object: map[string]interface{}{
32 "apiVersion": "apps/v1",
33 "kind": "Deployment",
34 "metadata": map[string]interface{}{
35 "name": "name",
36 "namespace": "namespace",
37 },
38 },
39 }
40
41
42
43 var wg sync.WaitGroup
44 wg.Add(1)
45 go func() {
46 defer wg.Done()
47 err = resourcePrinter.PrintObj(deployment, &buffer)
48 }()
49 msg := <-ch
50 wg.Wait()
51
52 assert.NoError(t, err)
53 assert.Equal(t, event.ApplySuccessful, msg.ApplyEvent.Status)
54 assert.Equal(t, deployment, msg.ApplyEvent.Resource)
55 }
56
View as plain text