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  }