1package testing
2
3import (
4	"testing"
5
6	"github.com/gophercloud/gophercloud/openstack/keymanager/v1/containers"
7	"github.com/gophercloud/gophercloud/pagination"
8	th "github.com/gophercloud/gophercloud/testhelper"
9	"github.com/gophercloud/gophercloud/testhelper/client"
10)
11
12func TestListContainers(t *testing.T) {
13	th.SetupHTTP()
14	defer th.TeardownHTTP()
15	HandleListContainersSuccessfully(t)
16
17	count := 0
18	err := containers.List(client.ServiceClient(), nil).EachPage(func(page pagination.Page) (bool, error) {
19		count++
20
21		actual, err := containers.ExtractContainers(page)
22		th.AssertNoErr(t, err)
23
24		th.AssertDeepEquals(t, ExpectedContainersSlice, actual)
25
26		return true, nil
27	})
28	th.AssertNoErr(t, err)
29	th.AssertEquals(t, count, 1)
30}
31
32func TestListContainersAllPages(t *testing.T) {
33	th.SetupHTTP()
34	defer th.TeardownHTTP()
35	HandleListContainersSuccessfully(t)
36
37	allPages, err := containers.List(client.ServiceClient(), nil).AllPages()
38	th.AssertNoErr(t, err)
39	actual, err := containers.ExtractContainers(allPages)
40	th.AssertNoErr(t, err)
41	th.AssertDeepEquals(t, ExpectedContainersSlice, actual)
42}
43
44func TestGetContainer(t *testing.T) {
45	th.SetupHTTP()
46	defer th.TeardownHTTP()
47	HandleGetContainerSuccessfully(t)
48
49	actual, err := containers.Get(client.ServiceClient(), "dfdb88f3-4ddb-4525-9da6-066453caa9b0").Extract()
50	th.AssertNoErr(t, err)
51	th.AssertDeepEquals(t, FirstContainer, *actual)
52}
53
54func TestCreateContainer(t *testing.T) {
55	th.SetupHTTP()
56	defer th.TeardownHTTP()
57	HandleCreateContainerSuccessfully(t)
58
59	createOpts := containers.CreateOpts{
60		Type: containers.GenericContainer,
61		Name: "mycontainer",
62		SecretRefs: []containers.SecretRef{
63			{
64				Name:      "mysecret",
65				SecretRef: "http://barbican:9311/v1/secrets/1b8068c4-3bb6-4be6-8f1e-da0d1ea0b67c",
66			},
67		},
68	}
69
70	actual, err := containers.Create(client.ServiceClient(), createOpts).Extract()
71	th.AssertNoErr(t, err)
72	th.AssertDeepEquals(t, FirstContainer, *actual)
73}
74
75func TestDeleteContainer(t *testing.T) {
76	th.SetupHTTP()
77	defer th.TeardownHTTP()
78	HandleDeleteContainerSuccessfully(t)
79
80	res := containers.Delete(client.ServiceClient(), "dfdb88f3-4ddb-4525-9da6-066453caa9b0")
81	th.AssertNoErr(t, res.Err)
82}
83
84func TestListConsumers(t *testing.T) {
85	th.SetupHTTP()
86	defer th.TeardownHTTP()
87	HandleListConsumersSuccessfully(t)
88
89	count := 0
90	err := containers.ListConsumers(client.ServiceClient(), "dfdb88f3-4ddb-4525-9da6-066453caa9b0", nil).EachPage(func(page pagination.Page) (bool, error) {
91		count++
92
93		actual, err := containers.ExtractConsumers(page)
94		th.AssertNoErr(t, err)
95
96		th.AssertDeepEquals(t, ExpectedConsumersSlice, actual)
97
98		return true, nil
99	})
100	th.AssertNoErr(t, err)
101	th.AssertEquals(t, count, 1)
102}
103
104func TestListConsumersAllPages(t *testing.T) {
105	th.SetupHTTP()
106	defer th.TeardownHTTP()
107	HandleListConsumersSuccessfully(t)
108
109	allPages, err := containers.ListConsumers(client.ServiceClient(), "dfdb88f3-4ddb-4525-9da6-066453caa9b0", nil).AllPages()
110	th.AssertNoErr(t, err)
111	actual, err := containers.ExtractConsumers(allPages)
112	th.AssertNoErr(t, err)
113	th.AssertDeepEquals(t, ExpectedConsumersSlice, actual)
114}
115
116func TestCreateConsumer(t *testing.T) {
117	th.SetupHTTP()
118	defer th.TeardownHTTP()
119	HandleCreateConsumerSuccessfully(t)
120
121	createOpts := containers.CreateConsumerOpts{
122		Name: "CONSUMER-LZILN1zq",
123		URL:  "http://example.com",
124	}
125
126	actual, err := containers.CreateConsumer(client.ServiceClient(), "dfdb88f3-4ddb-4525-9da6-066453caa9b0", createOpts).Extract()
127	th.AssertNoErr(t, err)
128	th.AssertDeepEquals(t, ExpectedCreatedConsumer, *actual)
129}
130
131func TestDeleteConsumer(t *testing.T) {
132	th.SetupHTTP()
133	defer th.TeardownHTTP()
134	HandleDeleteConsumerSuccessfully(t)
135
136	deleteOpts := containers.DeleteConsumerOpts{
137		Name: "CONSUMER-LZILN1zq",
138		URL:  "http://example.com",
139	}
140
141	actual, err := containers.DeleteConsumer(client.ServiceClient(), "dfdb88f3-4ddb-4525-9da6-066453caa9b0", deleteOpts).Extract()
142	th.AssertNoErr(t, err)
143	th.AssertDeepEquals(t, FirstContainer, *actual)
144}
145