github.com/sacloud/libsacloud/v2@v2.32.3/helper/builder/server/api_client_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 server 16 17 import ( 18 "context" 19 20 "github.com/sacloud/libsacloud/v2/sacloud" 21 "github.com/sacloud/libsacloud/v2/sacloud/types" 22 ) 23 24 type dummyPlanFinder struct { 25 plans []*sacloud.ServerPlan 26 err error 27 } 28 29 func (f *dummyPlanFinder) Find(ctx context.Context, zone string, conditions *sacloud.FindCondition) (*sacloud.ServerPlanFindResult, error) { 30 if f.err != nil { 31 return nil, f.err 32 } 33 34 return &sacloud.ServerPlanFindResult{ 35 Total: len(f.plans), 36 Count: len(f.plans), 37 ServerPlans: f.plans, 38 }, nil 39 } 40 41 type dummySwitchReader struct { 42 sw *sacloud.Switch 43 err error 44 } 45 46 func (d *dummySwitchReader) Read(ctx context.Context, zone string, id types.ID) (*sacloud.Switch, error) { 47 return d.sw, d.err 48 } 49 50 type dummyPackerFilterReader struct { 51 pf *sacloud.PacketFilter 52 err error 53 } 54 55 func (d *dummyPackerFilterReader) Read(ctx context.Context, zone string, id types.ID) (*sacloud.PacketFilter, error) { 56 return d.pf, d.err 57 } 58 59 type dummyInterfaceHandler struct { 60 iface *sacloud.Interface 61 err error 62 } 63 64 func (d *dummyInterfaceHandler) Create(ctx context.Context, zone string, param *sacloud.InterfaceCreateRequest) (*sacloud.Interface, error) { 65 if d.err != nil { 66 return nil, d.err 67 } 68 return d.iface, nil 69 } 70 func (d *dummyInterfaceHandler) Update(ctx context.Context, zone string, id types.ID, param *sacloud.InterfaceUpdateRequest) (*sacloud.Interface, error) { 71 if d.err != nil { 72 return nil, d.err 73 } 74 return d.iface, nil 75 } 76 func (d *dummyInterfaceHandler) Delete(ctx context.Context, zone string, id types.ID) error { 77 return d.err 78 } 79 func (d *dummyInterfaceHandler) ConnectToSharedSegment(ctx context.Context, zone string, id types.ID) error { 80 return d.err 81 } 82 func (d *dummyInterfaceHandler) ConnectToSwitch(ctx context.Context, zone string, id types.ID, switchID types.ID) error { 83 return d.err 84 } 85 func (d *dummyInterfaceHandler) DisconnectFromSwitch(ctx context.Context, zone string, id types.ID) error { 86 return d.err 87 } 88 func (d *dummyInterfaceHandler) ConnectToPacketFilter(ctx context.Context, zone string, id types.ID, packetFilterID types.ID) error { 89 return d.err 90 } 91 func (d *dummyInterfaceHandler) DisconnectFromPacketFilter(ctx context.Context, zone string, id types.ID) error { 92 return d.err 93 } 94 95 type dummyCreateServerHandler struct { 96 server *sacloud.Server 97 err error 98 cdromErr error 99 bootErr error 100 shutdownErr error 101 } 102 103 func (d *dummyCreateServerHandler) Create(ctx context.Context, zone string, param *sacloud.ServerCreateRequest) (*sacloud.Server, error) { 104 if d.err != nil { 105 return nil, d.err 106 } 107 return d.server, nil 108 } 109 110 func (d *dummyCreateServerHandler) Read(ctx context.Context, zone string, id types.ID) (*sacloud.Server, error) { 111 if d.err != nil { 112 return nil, d.err 113 } 114 return d.server, nil 115 } 116 117 func (d *dummyCreateServerHandler) Update(ctx context.Context, zone string, id types.ID, param *sacloud.ServerUpdateRequest) (*sacloud.Server, error) { 118 if d.err != nil { 119 return nil, d.err 120 } 121 return d.server, nil 122 } 123 124 func (d *dummyCreateServerHandler) InsertCDROM(ctx context.Context, zone string, id types.ID, insertParam *sacloud.InsertCDROMRequest) error { 125 return d.cdromErr 126 } 127 128 func (d *dummyCreateServerHandler) EjectCDROM(ctx context.Context, zone string, id types.ID, ejectParam *sacloud.EjectCDROMRequest) error { 129 return d.cdromErr 130 } 131 132 func (d *dummyCreateServerHandler) Boot(ctx context.Context, zone string, id types.ID) error { 133 return d.bootErr 134 } 135 136 func (d *dummyCreateServerHandler) BootWithVariables(ctx context.Context, zone string, id types.ID, param *sacloud.ServerBootVariables) error { 137 return d.bootErr 138 } 139 140 func (d *dummyCreateServerHandler) Shutdown(ctx context.Context, zone string, id types.ID, shutdownOption *sacloud.ShutdownOption) error { 141 return d.shutdownErr 142 } 143 144 func (d *dummyCreateServerHandler) ChangePlan(ctx context.Context, zone string, id types.ID, plan *sacloud.ServerChangePlanRequest) (*sacloud.Server, error) { 145 if d.err != nil { 146 return nil, d.err 147 } 148 return d.server, nil 149 }