github.com/sacloud/iaas-api-go@v1.12.0/test/bridge_op_test.go (about) 1 // Copyright 2022-2023 The sacloud/iaas-api-go Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package test 16 17 import ( 18 "testing" 19 20 "github.com/sacloud/iaas-api-go" 21 "github.com/sacloud/iaas-api-go/testutil" 22 ) 23 24 func TestBridgeOpCRUD(t *testing.T) { 25 testutil.RunCRUD(t, &testutil.CRUDTestCase{ 26 Parallel: true, 27 28 SetupAPICallerFunc: singletonAPICaller, 29 30 Create: &testutil.CRUDTestFunc{ 31 Func: testBridgeCreate, 32 CheckFunc: testutil.AssertEqualWithExpected(&testutil.CRUDTestExpect{ 33 ExpectValue: createBridgeExpected, 34 IgnoreFields: ignoreBridgeFields, 35 }), 36 }, 37 38 Read: &testutil.CRUDTestFunc{ 39 Func: testBridgeRead, 40 CheckFunc: testutil.AssertEqualWithExpected(&testutil.CRUDTestExpect{ 41 ExpectValue: createBridgeExpected, 42 IgnoreFields: ignoreBridgeFields, 43 }), 44 }, 45 46 Updates: []*testutil.CRUDTestFunc{ 47 { 48 Func: testBridgeUpdate, 49 CheckFunc: testutil.AssertEqualWithExpected(&testutil.CRUDTestExpect{ 50 ExpectValue: updateBridgeExpected, 51 IgnoreFields: ignoreBridgeFields, 52 }), 53 }, 54 { 55 Func: testBridgeUpdateToMin, 56 CheckFunc: testutil.AssertEqualWithExpected(&testutil.CRUDTestExpect{ 57 ExpectValue: updateBridgeToMinExpected, 58 IgnoreFields: ignoreBridgeFields, 59 }), 60 }, 61 }, 62 63 Delete: &testutil.CRUDTestDeleteFunc{ 64 Func: testBridgeDelete, 65 }, 66 }) 67 } 68 69 var ( 70 ignoreBridgeFields = []string{ 71 "ID", 72 "CreatedAt", 73 "Region", 74 "SwitchInZone", 75 "BridgeInfo", 76 } 77 78 createBridgeParam = &iaas.BridgeCreateRequest{ 79 Name: testutil.ResourceName("bridge"), 80 Description: "desc", 81 } 82 createBridgeExpected = &iaas.Bridge{ 83 Name: createBridgeParam.Name, 84 Description: createBridgeParam.Description, 85 } 86 updateBridgeParam = &iaas.BridgeUpdateRequest{ 87 Name: testutil.ResourceName("bridge-upd"), 88 Description: "desc-upd", 89 } 90 updateBridgeExpected = &iaas.Bridge{ 91 Name: updateBridgeParam.Name, 92 Description: updateBridgeParam.Description, 93 } 94 updateBridgeToMinParam = &iaas.BridgeUpdateRequest{ 95 Name: testutil.ResourceName("bridge-to-min"), 96 } 97 updateBridgeToMinExpected = &iaas.Bridge{ 98 Name: updateBridgeToMinParam.Name, 99 } 100 ) 101 102 func testBridgeCreate(ctx *testutil.CRUDTestContext, caller iaas.APICaller) (interface{}, error) { 103 client := iaas.NewBridgeOp(caller) 104 return client.Create(ctx, testZone, createBridgeParam) 105 } 106 107 func testBridgeRead(ctx *testutil.CRUDTestContext, caller iaas.APICaller) (interface{}, error) { 108 client := iaas.NewBridgeOp(caller) 109 return client.Read(ctx, testZone, ctx.ID) 110 } 111 112 func testBridgeUpdate(ctx *testutil.CRUDTestContext, caller iaas.APICaller) (interface{}, error) { 113 client := iaas.NewBridgeOp(caller) 114 return client.Update(ctx, testZone, ctx.ID, updateBridgeParam) 115 } 116 117 func testBridgeUpdateToMin(ctx *testutil.CRUDTestContext, caller iaas.APICaller) (interface{}, error) { 118 client := iaas.NewBridgeOp(caller) 119 return client.Update(ctx, testZone, ctx.ID, updateBridgeToMinParam) 120 } 121 122 func testBridgeDelete(ctx *testutil.CRUDTestContext, caller iaas.APICaller) error { 123 client := iaas.NewBridgeOp(caller) 124 return client.Delete(ctx, testZone, ctx.ID) 125 }