github.com/sacloud/libsacloud/v2@v2.32.3/helper/service/internet/update_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 internet 16 17 import ( 18 "context" 19 "testing" 20 21 internetBuilder "github.com/sacloud/libsacloud/v2/helper/builder/internet" 22 "github.com/sacloud/libsacloud/v2/helper/cleanup" 23 "github.com/sacloud/libsacloud/v2/sacloud" 24 "github.com/sacloud/libsacloud/v2/sacloud/pointer" 25 "github.com/sacloud/libsacloud/v2/sacloud/testutil" 26 "github.com/sacloud/libsacloud/v2/sacloud/types" 27 "github.com/stretchr/testify/require" 28 ) 29 30 func TestInternetService_convertUpdateRequest(t *testing.T) { 31 ctx := context.Background() 32 zone := testutil.TestZone() 33 caller := testutil.SingletonAPICaller() 34 name := testutil.ResourceName("internet-service-update") 35 36 // setup 37 builder := &internetBuilder.Builder{ 38 Name: name, 39 Description: "description", 40 Tags: types.Tags{"tag1", "tag2"}, 41 NetworkMaskLen: 28, 42 BandWidthMbps: 100, 43 EnableIPv6: true, 44 NotFoundRetry: 500, 45 NoWait: false, 46 Client: internetBuilder.NewAPIClient(caller), 47 } 48 internet, err := builder.Build(ctx, zone) 49 if err != nil { 50 t.Fatal(err) 51 } 52 defer func() { 53 cleanup.DeleteInternet(ctx, sacloud.NewInternetOp(caller), zone, internet.ID) // nolint 54 }() 55 56 // test 57 cases := []struct { 58 in *UpdateRequest 59 expect *internetBuilder.Builder 60 }{ 61 { 62 in: &UpdateRequest{ 63 Zone: zone, 64 ID: internet.ID, 65 Name: pointer.NewString(name + "-upd"), 66 Description: pointer.NewString("description-upd"), 67 BandWidthMbps: pointer.NewInt(250), 68 EnableIPv6: pointer.NewBool(false), 69 }, 70 expect: &internetBuilder.Builder{ 71 Name: name + "-upd", 72 Description: "description-upd", 73 Tags: internet.Tags, 74 IconID: internet.IconID, 75 NetworkMaskLen: internet.NetworkMaskLen, 76 BandWidthMbps: 250, 77 EnableIPv6: false, 78 Client: internetBuilder.NewAPIClient(caller), 79 }, 80 }, 81 } 82 83 for _, tc := range cases { 84 builder, err := tc.in.Builder(ctx, caller) 85 require.NoError(t, err) 86 require.EqualValues(t, tc.expect, builder) 87 } 88 }