@@ -108,49 +108,96 @@ func TestReservations(t *testing.T) {
108
108
109
109
var buf bytes.Buffer
110
110
111
- err := createTemplate (tc .ProjectID , templateName )
112
- if err != nil {
113
- t .Errorf ("createTemplate got err: %v" , err )
114
- }
115
- defer deleteTemplate (tc .ProjectID , templateName )
116
-
117
- sourceTemplate , err := getTemplate (tc .ProjectID , templateName )
118
- if err != nil {
119
- t .Errorf ("getTemplate got err: %v" , err )
120
- }
121
-
122
- want := "Reservation created"
123
- if err := createReservation (& buf , tc .ProjectID , zone , reservationName , * sourceTemplate .SelfLink ); err != nil {
124
- t .Errorf ("createReservation got err: %v" , err )
125
- }
126
- if got := buf .String (); ! strings .Contains (got , want ) {
127
- t .Errorf ("createReservation got %s, want %s" , got , want )
128
- }
129
- buf .Reset ()
130
-
131
- want = fmt .Sprintf ("Reservation: %s" , reservationName )
132
- if err := getReservation (& buf , tc .ProjectID , zone , reservationName ); err != nil {
133
- t .Errorf ("getReservation got err: %v" , err )
134
- }
135
- if got := buf .String (); ! strings .Contains (got , want ) {
136
- t .Errorf ("getReservation got %s, want %s" , got , want )
137
- }
138
- buf .Reset ()
139
-
140
- want = fmt .Sprintf ("- %s %d" , reservationName , 2 )
141
- if err := listReservations (& buf , tc .ProjectID , zone ); err != nil {
142
- t .Errorf ("listReservations got err: %v" , err )
143
- }
144
- if got := buf .String (); ! strings .Contains (got , want ) {
145
- t .Errorf ("listReservations got %s, want %s" , got , want )
146
- }
147
- buf .Reset ()
148
-
149
- want = "Reservation deleted"
150
- if err := deleteReservation (& buf , tc .ProjectID , zone , reservationName ); err != nil {
151
- t .Errorf ("deleteReservation got err: %v" , err )
152
- }
153
- if got := buf .String (); ! strings .Contains (got , want ) {
154
- t .Errorf ("deleteReservation got %s, want %s" , got , want )
155
- }
111
+ t .Run ("Reservation CRUD" , func (t * testing.T ) {
112
+ err := createTemplate (tc .ProjectID , templateName )
113
+ if err != nil {
114
+ t .Errorf ("createTemplate got err: %v" , err )
115
+ }
116
+ defer deleteTemplate (tc .ProjectID , templateName )
117
+
118
+ sourceTemplate , err := getTemplate (tc .ProjectID , templateName )
119
+ if err != nil {
120
+ t .Errorf ("getTemplate got err: %v" , err )
121
+ }
122
+
123
+ want := "Reservation created"
124
+ if err := createReservation (& buf , tc .ProjectID , zone , reservationName , * sourceTemplate .SelfLink ); err != nil {
125
+ t .Errorf ("createReservation got err: %v" , err )
126
+ }
127
+ if got := buf .String (); ! strings .Contains (got , want ) {
128
+ t .Errorf ("createReservation got %s, want %s" , got , want )
129
+ }
130
+ buf .Reset ()
131
+
132
+ want = fmt .Sprintf ("Reservation: %s" , reservationName )
133
+ if err := getReservation (& buf , tc .ProjectID , zone , reservationName ); err != nil {
134
+ t .Errorf ("getReservation got err: %v" , err )
135
+ }
136
+ if got := buf .String (); ! strings .Contains (got , want ) {
137
+ t .Errorf ("getReservation got %s, want %s" , got , want )
138
+ }
139
+ buf .Reset ()
140
+
141
+ want = fmt .Sprintf ("- %s %d" , reservationName , 2 )
142
+ if err := listReservations (& buf , tc .ProjectID , zone ); err != nil {
143
+ t .Errorf ("listReservations got err: %v" , err )
144
+ }
145
+ if got := buf .String (); ! strings .Contains (got , want ) {
146
+ t .Errorf ("listReservations got %s, want %s" , got , want )
147
+ }
148
+ buf .Reset ()
149
+
150
+ want = "Reservation deleted"
151
+ if err := deleteReservation (& buf , tc .ProjectID , zone , reservationName ); err != nil {
152
+ t .Errorf ("deleteReservation got err: %v" , err )
153
+ }
154
+ if got := buf .String (); ! strings .Contains (got , want ) {
155
+ t .Errorf ("deleteReservation got %s, want %s" , got , want )
156
+ }
157
+ })
158
+
159
+ t .Run ("Shared reservation CRUD" , func (t * testing.T ) {
160
+ baseProjectId := "softserve-shared"
161
+ err := createTemplate (baseProjectId , templateName )
162
+ if err != nil {
163
+ t .Errorf ("createTemplate got err: %v" , err )
164
+ }
165
+ defer deleteTemplate (baseProjectId , templateName )
166
+
167
+ sourceTemplate , err := getTemplate (baseProjectId , templateName )
168
+ if err != nil {
169
+ t .Errorf ("getTemplate got err: %v" , err )
170
+ }
171
+
172
+ want := "Reservation created"
173
+
174
+ ctx := context .Background ()
175
+
176
+ // In order to test, using not mocked client you can simply replace with:
177
+ // reservationsClient, err := compute.NewReservationsRESTClient(ctx)
178
+ reservationsClient := ReservationsClient {}
179
+ if err != nil {
180
+ t .Errorf ("Couldn't create reservationsClient, err: %v" , err )
181
+ }
182
+ defer reservationsClient .Close ()
183
+
184
+ if err := createSharedReservation (& buf , reservationsClient , tc .ProjectID , baseProjectId , zone , reservationName , * sourceTemplate .SelfLink ); err != nil {
185
+ t .Errorf ("createSharedReservation got err: %v" , err )
186
+ }
187
+ if got := buf .String (); ! strings .Contains (got , want ) {
188
+ t .Errorf ("createSharedReservation got %s, want %s" , got , want )
189
+ }
190
+ buf .Reset ()
191
+
192
+ req := & computepb.DeleteReservationRequest {
193
+ Project : baseProjectId ,
194
+ Reservation : reservationName ,
195
+ Zone : zone ,
196
+ }
197
+
198
+ _ , err = reservationsClient .Delete (ctx , req )
199
+ if err != nil {
200
+ t .Errorf ("unable to delete reservation: %v" , err )
201
+ }
202
+ })
156
203
}
0 commit comments