github.com/sacloud/iaas-api-go@v1.12.0/test/certificate_authority_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 "time" 20 21 "github.com/sacloud/iaas-api-go" 22 "github.com/sacloud/iaas-api-go/testutil" 23 "github.com/sacloud/iaas-api-go/types" 24 ) 25 26 func TestCertificateAuthorityOp_CRUD(t *testing.T) { 27 testutil.RunCRUD(t, &testutil.CRUDTestCase{ 28 Parallel: true, 29 30 SetupAPICallerFunc: singletonAPICaller, 31 32 Create: &testutil.CRUDTestFunc{ 33 Func: testCertificateAuthorityCreate, 34 CheckFunc: testutil.AssertEqualWithExpected(&testutil.CRUDTestExpect{ 35 ExpectValue: createCertificateAuthorityExpected, 36 IgnoreFields: ignoreCertificateAuthorityFields, 37 }), 38 }, 39 40 Read: &testutil.CRUDTestFunc{ 41 Func: testCertificateAuthorityRead, 42 CheckFunc: testutil.AssertEqualWithExpected(&testutil.CRUDTestExpect{ 43 ExpectValue: createCertificateAuthorityExpected, 44 IgnoreFields: ignoreCertificateAuthorityFields, 45 }), 46 }, 47 48 Updates: []*testutil.CRUDTestFunc{ 49 { 50 Func: testCertificateAuthorityUpdate, 51 CheckFunc: testutil.AssertEqualWithExpected(&testutil.CRUDTestExpect{ 52 ExpectValue: updateCertificateAuthorityExpected, 53 IgnoreFields: ignoreCertificateAuthorityFields, 54 }), 55 }, 56 }, 57 58 Delete: &testutil.CRUDTestDeleteFunc{ 59 Func: testCertificateAuthorityDelete, 60 }, 61 }) 62 } 63 64 var ( 65 ignoreCertificateAuthorityFields = []string{ 66 "ID", 67 "Class", 68 "SettingsHash", 69 "CreatedAt", 70 "ModifiedAt", 71 "Subject", // fakeドライバーで算出していないため 72 "NotAfter", 73 } 74 createCertificateAuthorityParam = &iaas.CertificateAuthorityCreateRequest{ 75 Name: testutil.ResourceName("certificate-authority"), 76 Description: "desc", 77 Tags: []string{"tag1", "tag2"}, 78 Country: "JP", 79 Organization: "usacloud", 80 OrganizationUnit: []string{"u1", "u2"}, 81 CommonName: "u2.u1.usacloud.jp", 82 NotAfter: time.Now().Add(10 * 24 * time.Hour), 83 } 84 createCertificateAuthorityExpected = &iaas.CertificateAuthority{ 85 Name: createCertificateAuthorityParam.Name, 86 Description: createCertificateAuthorityParam.Description, 87 Tags: createCertificateAuthorityParam.Tags, 88 Availability: types.Availabilities.Available, 89 Country: createCertificateAuthorityParam.Country, 90 Organization: createCertificateAuthorityParam.Organization, 91 OrganizationUnit: createCertificateAuthorityParam.OrganizationUnit, 92 CommonName: createCertificateAuthorityParam.CommonName, 93 } 94 updateCertificateAuthorityParam = &iaas.CertificateAuthorityUpdateRequest{ 95 Name: createCertificateAuthorityParam.Name, 96 Description: "desc-upd", 97 Tags: []string{"tag1-upd", "tag2-upd"}, 98 IconID: testIconID, 99 } 100 updateCertificateAuthorityExpected = &iaas.CertificateAuthority{ 101 Name: createCertificateAuthorityParam.Name, 102 Description: updateCertificateAuthorityParam.Description, 103 IconID: testIconID, 104 Tags: updateCertificateAuthorityParam.Tags, 105 Availability: types.Availabilities.Available, 106 Country: createCertificateAuthorityParam.Country, 107 Organization: createCertificateAuthorityParam.Organization, 108 OrganizationUnit: createCertificateAuthorityParam.OrganizationUnit, 109 CommonName: createCertificateAuthorityParam.CommonName, 110 } 111 ) 112 113 func testCertificateAuthorityCreate(ctx *testutil.CRUDTestContext, caller iaas.APICaller) (interface{}, error) { 114 client := iaas.NewCertificateAuthorityOp(caller) 115 return client.Create(ctx, createCertificateAuthorityParam) 116 } 117 118 func testCertificateAuthorityRead(ctx *testutil.CRUDTestContext, caller iaas.APICaller) (interface{}, error) { 119 client := iaas.NewCertificateAuthorityOp(caller) 120 return client.Read(ctx, ctx.ID) 121 } 122 123 func testCertificateAuthorityUpdate(ctx *testutil.CRUDTestContext, caller iaas.APICaller) (interface{}, error) { 124 client := iaas.NewCertificateAuthorityOp(caller) 125 return client.Update(ctx, ctx.ID, updateCertificateAuthorityParam) 126 } 127 128 func testCertificateAuthorityDelete(ctx *testutil.CRUDTestContext, caller iaas.APICaller) error { 129 client := iaas.NewCertificateAuthorityOp(caller) 130 return client.Delete(ctx, ctx.ID) 131 }