github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/fake/virtualrouters_server.go (about) 1 //go:build go1.18 2 // +build go1.18 3 4 // Copyright (c) Microsoft Corporation. All rights reserved. 5 // Licensed under the MIT License. See License.txt in the project root for license information. 6 // Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. 7 // Changes may cause incorrect behavior and will be lost if the code is regenerated. 8 9 package fake 10 11 import ( 12 "context" 13 "errors" 14 "fmt" 15 azfake "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake" 16 "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server" 17 "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" 18 "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" 19 "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6" 20 "net/http" 21 "net/url" 22 "regexp" 23 ) 24 25 // VirtualRoutersServer is a fake server for instances of the armnetwork.VirtualRoutersClient type. 26 type VirtualRoutersServer struct { 27 // BeginCreateOrUpdate is the fake for method VirtualRoutersClient.BeginCreateOrUpdate 28 // HTTP status codes to indicate success: http.StatusOK, http.StatusCreated 29 BeginCreateOrUpdate func(ctx context.Context, resourceGroupName string, virtualRouterName string, parameters armnetwork.VirtualRouter, options *armnetwork.VirtualRoutersClientBeginCreateOrUpdateOptions) (resp azfake.PollerResponder[armnetwork.VirtualRoutersClientCreateOrUpdateResponse], errResp azfake.ErrorResponder) 30 31 // BeginDelete is the fake for method VirtualRoutersClient.BeginDelete 32 // HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted, http.StatusNoContent 33 BeginDelete func(ctx context.Context, resourceGroupName string, virtualRouterName string, options *armnetwork.VirtualRoutersClientBeginDeleteOptions) (resp azfake.PollerResponder[armnetwork.VirtualRoutersClientDeleteResponse], errResp azfake.ErrorResponder) 34 35 // Get is the fake for method VirtualRoutersClient.Get 36 // HTTP status codes to indicate success: http.StatusOK 37 Get func(ctx context.Context, resourceGroupName string, virtualRouterName string, options *armnetwork.VirtualRoutersClientGetOptions) (resp azfake.Responder[armnetwork.VirtualRoutersClientGetResponse], errResp azfake.ErrorResponder) 38 39 // NewListPager is the fake for method VirtualRoutersClient.NewListPager 40 // HTTP status codes to indicate success: http.StatusOK 41 NewListPager func(options *armnetwork.VirtualRoutersClientListOptions) (resp azfake.PagerResponder[armnetwork.VirtualRoutersClientListResponse]) 42 43 // NewListByResourceGroupPager is the fake for method VirtualRoutersClient.NewListByResourceGroupPager 44 // HTTP status codes to indicate success: http.StatusOK 45 NewListByResourceGroupPager func(resourceGroupName string, options *armnetwork.VirtualRoutersClientListByResourceGroupOptions) (resp azfake.PagerResponder[armnetwork.VirtualRoutersClientListByResourceGroupResponse]) 46 } 47 48 // NewVirtualRoutersServerTransport creates a new instance of VirtualRoutersServerTransport with the provided implementation. 49 // The returned VirtualRoutersServerTransport instance is connected to an instance of armnetwork.VirtualRoutersClient via the 50 // azcore.ClientOptions.Transporter field in the client's constructor parameters. 51 func NewVirtualRoutersServerTransport(srv *VirtualRoutersServer) *VirtualRoutersServerTransport { 52 return &VirtualRoutersServerTransport{ 53 srv: srv, 54 beginCreateOrUpdate: newTracker[azfake.PollerResponder[armnetwork.VirtualRoutersClientCreateOrUpdateResponse]](), 55 beginDelete: newTracker[azfake.PollerResponder[armnetwork.VirtualRoutersClientDeleteResponse]](), 56 newListPager: newTracker[azfake.PagerResponder[armnetwork.VirtualRoutersClientListResponse]](), 57 newListByResourceGroupPager: newTracker[azfake.PagerResponder[armnetwork.VirtualRoutersClientListByResourceGroupResponse]](), 58 } 59 } 60 61 // VirtualRoutersServerTransport connects instances of armnetwork.VirtualRoutersClient to instances of VirtualRoutersServer. 62 // Don't use this type directly, use NewVirtualRoutersServerTransport instead. 63 type VirtualRoutersServerTransport struct { 64 srv *VirtualRoutersServer 65 beginCreateOrUpdate *tracker[azfake.PollerResponder[armnetwork.VirtualRoutersClientCreateOrUpdateResponse]] 66 beginDelete *tracker[azfake.PollerResponder[armnetwork.VirtualRoutersClientDeleteResponse]] 67 newListPager *tracker[azfake.PagerResponder[armnetwork.VirtualRoutersClientListResponse]] 68 newListByResourceGroupPager *tracker[azfake.PagerResponder[armnetwork.VirtualRoutersClientListByResourceGroupResponse]] 69 } 70 71 // Do implements the policy.Transporter interface for VirtualRoutersServerTransport. 72 func (v *VirtualRoutersServerTransport) Do(req *http.Request) (*http.Response, error) { 73 rawMethod := req.Context().Value(runtime.CtxAPINameKey{}) 74 method, ok := rawMethod.(string) 75 if !ok { 76 return nil, nonRetriableError{errors.New("unable to dispatch request, missing value for CtxAPINameKey")} 77 } 78 79 var resp *http.Response 80 var err error 81 82 switch method { 83 case "VirtualRoutersClient.BeginCreateOrUpdate": 84 resp, err = v.dispatchBeginCreateOrUpdate(req) 85 case "VirtualRoutersClient.BeginDelete": 86 resp, err = v.dispatchBeginDelete(req) 87 case "VirtualRoutersClient.Get": 88 resp, err = v.dispatchGet(req) 89 case "VirtualRoutersClient.NewListPager": 90 resp, err = v.dispatchNewListPager(req) 91 case "VirtualRoutersClient.NewListByResourceGroupPager": 92 resp, err = v.dispatchNewListByResourceGroupPager(req) 93 default: 94 err = fmt.Errorf("unhandled API %s", method) 95 } 96 97 if err != nil { 98 return nil, err 99 } 100 101 return resp, nil 102 } 103 104 func (v *VirtualRoutersServerTransport) dispatchBeginCreateOrUpdate(req *http.Request) (*http.Response, error) { 105 if v.srv.BeginCreateOrUpdate == nil { 106 return nil, &nonRetriableError{errors.New("fake for method BeginCreateOrUpdate not implemented")} 107 } 108 beginCreateOrUpdate := v.beginCreateOrUpdate.get(req) 109 if beginCreateOrUpdate == nil { 110 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/virtualRouters/(?P<virtualRouterName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 111 regex := regexp.MustCompile(regexStr) 112 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 113 if matches == nil || len(matches) < 3 { 114 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 115 } 116 body, err := server.UnmarshalRequestAsJSON[armnetwork.VirtualRouter](req) 117 if err != nil { 118 return nil, err 119 } 120 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 121 if err != nil { 122 return nil, err 123 } 124 virtualRouterNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("virtualRouterName")]) 125 if err != nil { 126 return nil, err 127 } 128 respr, errRespr := v.srv.BeginCreateOrUpdate(req.Context(), resourceGroupNameParam, virtualRouterNameParam, body, nil) 129 if respErr := server.GetError(errRespr, req); respErr != nil { 130 return nil, respErr 131 } 132 beginCreateOrUpdate = &respr 133 v.beginCreateOrUpdate.add(req, beginCreateOrUpdate) 134 } 135 136 resp, err := server.PollerResponderNext(beginCreateOrUpdate, req) 137 if err != nil { 138 return nil, err 139 } 140 141 if !contains([]int{http.StatusOK, http.StatusCreated}, resp.StatusCode) { 142 v.beginCreateOrUpdate.remove(req) 143 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusCreated", resp.StatusCode)} 144 } 145 if !server.PollerResponderMore(beginCreateOrUpdate) { 146 v.beginCreateOrUpdate.remove(req) 147 } 148 149 return resp, nil 150 } 151 152 func (v *VirtualRoutersServerTransport) dispatchBeginDelete(req *http.Request) (*http.Response, error) { 153 if v.srv.BeginDelete == nil { 154 return nil, &nonRetriableError{errors.New("fake for method BeginDelete not implemented")} 155 } 156 beginDelete := v.beginDelete.get(req) 157 if beginDelete == nil { 158 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/virtualRouters/(?P<virtualRouterName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 159 regex := regexp.MustCompile(regexStr) 160 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 161 if matches == nil || len(matches) < 3 { 162 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 163 } 164 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 165 if err != nil { 166 return nil, err 167 } 168 virtualRouterNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("virtualRouterName")]) 169 if err != nil { 170 return nil, err 171 } 172 respr, errRespr := v.srv.BeginDelete(req.Context(), resourceGroupNameParam, virtualRouterNameParam, nil) 173 if respErr := server.GetError(errRespr, req); respErr != nil { 174 return nil, respErr 175 } 176 beginDelete = &respr 177 v.beginDelete.add(req, beginDelete) 178 } 179 180 resp, err := server.PollerResponderNext(beginDelete, req) 181 if err != nil { 182 return nil, err 183 } 184 185 if !contains([]int{http.StatusOK, http.StatusAccepted, http.StatusNoContent}, resp.StatusCode) { 186 v.beginDelete.remove(req) 187 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted, http.StatusNoContent", resp.StatusCode)} 188 } 189 if !server.PollerResponderMore(beginDelete) { 190 v.beginDelete.remove(req) 191 } 192 193 return resp, nil 194 } 195 196 func (v *VirtualRoutersServerTransport) dispatchGet(req *http.Request) (*http.Response, error) { 197 if v.srv.Get == nil { 198 return nil, &nonRetriableError{errors.New("fake for method Get not implemented")} 199 } 200 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/virtualRouters/(?P<virtualRouterName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 201 regex := regexp.MustCompile(regexStr) 202 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 203 if matches == nil || len(matches) < 3 { 204 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 205 } 206 qp := req.URL.Query() 207 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 208 if err != nil { 209 return nil, err 210 } 211 virtualRouterNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("virtualRouterName")]) 212 if err != nil { 213 return nil, err 214 } 215 expandUnescaped, err := url.QueryUnescape(qp.Get("$expand")) 216 if err != nil { 217 return nil, err 218 } 219 expandParam := getOptional(expandUnescaped) 220 var options *armnetwork.VirtualRoutersClientGetOptions 221 if expandParam != nil { 222 options = &armnetwork.VirtualRoutersClientGetOptions{ 223 Expand: expandParam, 224 } 225 } 226 respr, errRespr := v.srv.Get(req.Context(), resourceGroupNameParam, virtualRouterNameParam, options) 227 if respErr := server.GetError(errRespr, req); respErr != nil { 228 return nil, respErr 229 } 230 respContent := server.GetResponseContent(respr) 231 if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { 232 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} 233 } 234 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).VirtualRouter, req) 235 if err != nil { 236 return nil, err 237 } 238 return resp, nil 239 } 240 241 func (v *VirtualRoutersServerTransport) dispatchNewListPager(req *http.Request) (*http.Response, error) { 242 if v.srv.NewListPager == nil { 243 return nil, &nonRetriableError{errors.New("fake for method NewListPager not implemented")} 244 } 245 newListPager := v.newListPager.get(req) 246 if newListPager == nil { 247 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/virtualRouters` 248 regex := regexp.MustCompile(regexStr) 249 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 250 if matches == nil || len(matches) < 1 { 251 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 252 } 253 resp := v.srv.NewListPager(nil) 254 newListPager = &resp 255 v.newListPager.add(req, newListPager) 256 server.PagerResponderInjectNextLinks(newListPager, req, func(page *armnetwork.VirtualRoutersClientListResponse, createLink func() string) { 257 page.NextLink = to.Ptr(createLink()) 258 }) 259 } 260 resp, err := server.PagerResponderNext(newListPager, req) 261 if err != nil { 262 return nil, err 263 } 264 if !contains([]int{http.StatusOK}, resp.StatusCode) { 265 v.newListPager.remove(req) 266 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)} 267 } 268 if !server.PagerResponderMore(newListPager) { 269 v.newListPager.remove(req) 270 } 271 return resp, nil 272 } 273 274 func (v *VirtualRoutersServerTransport) dispatchNewListByResourceGroupPager(req *http.Request) (*http.Response, error) { 275 if v.srv.NewListByResourceGroupPager == nil { 276 return nil, &nonRetriableError{errors.New("fake for method NewListByResourceGroupPager not implemented")} 277 } 278 newListByResourceGroupPager := v.newListByResourceGroupPager.get(req) 279 if newListByResourceGroupPager == nil { 280 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/virtualRouters` 281 regex := regexp.MustCompile(regexStr) 282 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 283 if matches == nil || len(matches) < 2 { 284 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 285 } 286 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 287 if err != nil { 288 return nil, err 289 } 290 resp := v.srv.NewListByResourceGroupPager(resourceGroupNameParam, nil) 291 newListByResourceGroupPager = &resp 292 v.newListByResourceGroupPager.add(req, newListByResourceGroupPager) 293 server.PagerResponderInjectNextLinks(newListByResourceGroupPager, req, func(page *armnetwork.VirtualRoutersClientListByResourceGroupResponse, createLink func() string) { 294 page.NextLink = to.Ptr(createLink()) 295 }) 296 } 297 resp, err := server.PagerResponderNext(newListByResourceGroupPager, req) 298 if err != nil { 299 return nil, err 300 } 301 if !contains([]int{http.StatusOK}, resp.StatusCode) { 302 v.newListByResourceGroupPager.remove(req) 303 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)} 304 } 305 if !server.PagerResponderMore(newListByResourceGroupPager) { 306 v.newListByResourceGroupPager.remove(req) 307 } 308 return resp, nil 309 }