github.com/sacloud/libsacloud/v2@v2.32.3/helper/builder/sim/builder_test.go (about) 1 // Copyright 2016-2022 The Libsacloud 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 sim 16 17 import ( 18 "os" 19 "testing" 20 21 "github.com/sacloud/libsacloud/v2/helper/query" 22 23 "github.com/sacloud/libsacloud/v2/helper/cleanup" 24 "github.com/sacloud/libsacloud/v2/sacloud" 25 "github.com/sacloud/libsacloud/v2/sacloud/testutil" 26 "github.com/sacloud/libsacloud/v2/sacloud/types" 27 ) 28 29 func TestSIMBuilder_Build(t *testing.T) { 30 testutil.PreCheckEnvsFunc("SAKURACLOUD_SIM_ICCID", "SAKURACLOUD_SIM_PASSCODE")(t) 31 32 iccid := os.Getenv("SAKURACLOUD_SIM_ICCID") 33 passcode := os.Getenv("SAKURACLOUD_SIM_PASSCODE") 34 imei := "123456789012345" 35 imeiUpd := "123456789012346" 36 37 testutil.RunCRUD(t, &testutil.CRUDTestCase{ 38 SetupAPICallerFunc: func() sacloud.APICaller { 39 return testutil.SingletonAPICaller() 40 }, 41 Parallel: true, 42 IgnoreStartupWait: true, 43 Create: &testutil.CRUDTestFunc{ 44 Func: func(ctx *testutil.CRUDTestContext, caller sacloud.APICaller) (interface{}, error) { 45 builder := &Builder{ 46 Name: testutil.ResourceName("sim-builder"), 47 Description: "description", 48 Tags: types.Tags{"tag1", "tag2"}, 49 ICCID: iccid, 50 PassCode: passcode, 51 Activate: true, 52 IMEI: imei, 53 Carrier: []*sacloud.SIMNetworkOperatorConfig{ 54 { 55 Allow: true, 56 Name: types.SIMOperators.SoftBank.String(), 57 }, 58 }, 59 Client: NewAPIClient(caller), 60 } 61 return builder.Build(ctx) 62 }, 63 }, 64 Read: &testutil.CRUDTestFunc{ 65 Func: func(ctx *testutil.CRUDTestContext, caller sacloud.APICaller) (interface{}, error) { 66 simOp := sacloud.NewSIMOp(caller) 67 return query.FindSIMByID(ctx, simOp, ctx.ID) 68 }, 69 CheckFunc: func(t testutil.TestT, ctx *testutil.CRUDTestContext, value interface{}) error { 70 sim := value.(*sacloud.SIM) 71 return testutil.DoAsserts( 72 testutil.AssertNotNilFunc(t, sim, "SIM"), 73 testutil.AssertNotNilFunc(t, sim.Info, "SIM.Info"), 74 testutil.AssertTrueFunc(t, sim.Info.Activated, "SIM.Info.Activated"), 75 testutil.AssertTrueFunc(t, sim.Info.IMEILock, "SIM.Info.IMEILock"), 76 ) 77 }, 78 }, 79 Updates: []*testutil.CRUDTestFunc{ 80 { 81 Func: func(ctx *testutil.CRUDTestContext, caller sacloud.APICaller) (interface{}, error) { 82 sim := ctx.LastValue.(*sacloud.SIM) 83 builder := &Builder{ 84 Name: sim.Name, 85 Description: sim.Description, 86 Tags: sim.Tags, 87 ICCID: iccid, 88 PassCode: passcode, 89 Activate: true, 90 IMEI: imeiUpd, 91 Carrier: []*sacloud.SIMNetworkOperatorConfig{ 92 { 93 Allow: true, 94 Name: types.SIMOperators.SoftBank.String(), 95 }, 96 }, 97 Client: NewAPIClient(caller), 98 } 99 return builder.Update(ctx, sim.ID) 100 }, 101 CheckFunc: func(t testutil.TestT, ctx *testutil.CRUDTestContext, value interface{}) error { 102 sim := value.(*sacloud.SIM) 103 return testutil.DoAsserts( 104 testutil.AssertTrueFunc(t, sim.Info.IMEILock, "SIM.Info.IMEILock"), 105 ) 106 }, 107 }, 108 { 109 Func: func(ctx *testutil.CRUDTestContext, caller sacloud.APICaller) (interface{}, error) { 110 sim := ctx.LastValue.(*sacloud.SIM) 111 builder := &Builder{ 112 Name: sim.Name, 113 Description: sim.Description, 114 Tags: sim.Tags, 115 ICCID: iccid, 116 PassCode: passcode, 117 Activate: true, 118 IMEI: "", 119 Carrier: []*sacloud.SIMNetworkOperatorConfig{ 120 { 121 Allow: true, 122 Name: types.SIMOperators.SoftBank.String(), 123 }, 124 }, 125 Client: NewAPIClient(caller), 126 } 127 return builder.Update(ctx, sim.ID) 128 }, 129 CheckFunc: func(t testutil.TestT, ctx *testutil.CRUDTestContext, value interface{}) error { 130 sim := value.(*sacloud.SIM) 131 return testutil.DoAsserts( 132 testutil.AssertFalseFunc(t, sim.Info.IMEILock, "SIM.Info.IMEILock"), 133 ) 134 }, 135 }, 136 }, 137 Delete: &testutil.CRUDTestDeleteFunc{ 138 Func: func(ctx *testutil.CRUDTestContext, caller sacloud.APICaller) error { 139 simOp := sacloud.NewSIMOp(caller) 140 return cleanup.DeleteSIM(ctx, simOp, ctx.ID) 141 }, 142 }, 143 }) 144 }