github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/fake/expressroutecircuitconnections_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 // ExpressRouteCircuitConnectionsServer is a fake server for instances of the armnetwork.ExpressRouteCircuitConnectionsClient type. 26 type ExpressRouteCircuitConnectionsServer struct { 27 // BeginCreateOrUpdate is the fake for method ExpressRouteCircuitConnectionsClient.BeginCreateOrUpdate 28 // HTTP status codes to indicate success: http.StatusOK, http.StatusCreated 29 BeginCreateOrUpdate func(ctx context.Context, resourceGroupName string, circuitName string, peeringName string, connectionName string, expressRouteCircuitConnectionParameters armnetwork.ExpressRouteCircuitConnection, options *armnetwork.ExpressRouteCircuitConnectionsClientBeginCreateOrUpdateOptions) (resp azfake.PollerResponder[armnetwork.ExpressRouteCircuitConnectionsClientCreateOrUpdateResponse], errResp azfake.ErrorResponder) 30 31 // BeginDelete is the fake for method ExpressRouteCircuitConnectionsClient.BeginDelete 32 // HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted, http.StatusNoContent 33 BeginDelete func(ctx context.Context, resourceGroupName string, circuitName string, peeringName string, connectionName string, options *armnetwork.ExpressRouteCircuitConnectionsClientBeginDeleteOptions) (resp azfake.PollerResponder[armnetwork.ExpressRouteCircuitConnectionsClientDeleteResponse], errResp azfake.ErrorResponder) 34 35 // Get is the fake for method ExpressRouteCircuitConnectionsClient.Get 36 // HTTP status codes to indicate success: http.StatusOK 37 Get func(ctx context.Context, resourceGroupName string, circuitName string, peeringName string, connectionName string, options *armnetwork.ExpressRouteCircuitConnectionsClientGetOptions) (resp azfake.Responder[armnetwork.ExpressRouteCircuitConnectionsClientGetResponse], errResp azfake.ErrorResponder) 38 39 // NewListPager is the fake for method ExpressRouteCircuitConnectionsClient.NewListPager 40 // HTTP status codes to indicate success: http.StatusOK 41 NewListPager func(resourceGroupName string, circuitName string, peeringName string, options *armnetwork.ExpressRouteCircuitConnectionsClientListOptions) (resp azfake.PagerResponder[armnetwork.ExpressRouteCircuitConnectionsClientListResponse]) 42 } 43 44 // NewExpressRouteCircuitConnectionsServerTransport creates a new instance of ExpressRouteCircuitConnectionsServerTransport with the provided implementation. 45 // The returned ExpressRouteCircuitConnectionsServerTransport instance is connected to an instance of armnetwork.ExpressRouteCircuitConnectionsClient via the 46 // azcore.ClientOptions.Transporter field in the client's constructor parameters. 47 func NewExpressRouteCircuitConnectionsServerTransport(srv *ExpressRouteCircuitConnectionsServer) *ExpressRouteCircuitConnectionsServerTransport { 48 return &ExpressRouteCircuitConnectionsServerTransport{ 49 srv: srv, 50 beginCreateOrUpdate: newTracker[azfake.PollerResponder[armnetwork.ExpressRouteCircuitConnectionsClientCreateOrUpdateResponse]](), 51 beginDelete: newTracker[azfake.PollerResponder[armnetwork.ExpressRouteCircuitConnectionsClientDeleteResponse]](), 52 newListPager: newTracker[azfake.PagerResponder[armnetwork.ExpressRouteCircuitConnectionsClientListResponse]](), 53 } 54 } 55 56 // ExpressRouteCircuitConnectionsServerTransport connects instances of armnetwork.ExpressRouteCircuitConnectionsClient to instances of ExpressRouteCircuitConnectionsServer. 57 // Don't use this type directly, use NewExpressRouteCircuitConnectionsServerTransport instead. 58 type ExpressRouteCircuitConnectionsServerTransport struct { 59 srv *ExpressRouteCircuitConnectionsServer 60 beginCreateOrUpdate *tracker[azfake.PollerResponder[armnetwork.ExpressRouteCircuitConnectionsClientCreateOrUpdateResponse]] 61 beginDelete *tracker[azfake.PollerResponder[armnetwork.ExpressRouteCircuitConnectionsClientDeleteResponse]] 62 newListPager *tracker[azfake.PagerResponder[armnetwork.ExpressRouteCircuitConnectionsClientListResponse]] 63 } 64 65 // Do implements the policy.Transporter interface for ExpressRouteCircuitConnectionsServerTransport. 66 func (e *ExpressRouteCircuitConnectionsServerTransport) Do(req *http.Request) (*http.Response, error) { 67 rawMethod := req.Context().Value(runtime.CtxAPINameKey{}) 68 method, ok := rawMethod.(string) 69 if !ok { 70 return nil, nonRetriableError{errors.New("unable to dispatch request, missing value for CtxAPINameKey")} 71 } 72 73 var resp *http.Response 74 var err error 75 76 switch method { 77 case "ExpressRouteCircuitConnectionsClient.BeginCreateOrUpdate": 78 resp, err = e.dispatchBeginCreateOrUpdate(req) 79 case "ExpressRouteCircuitConnectionsClient.BeginDelete": 80 resp, err = e.dispatchBeginDelete(req) 81 case "ExpressRouteCircuitConnectionsClient.Get": 82 resp, err = e.dispatchGet(req) 83 case "ExpressRouteCircuitConnectionsClient.NewListPager": 84 resp, err = e.dispatchNewListPager(req) 85 default: 86 err = fmt.Errorf("unhandled API %s", method) 87 } 88 89 if err != nil { 90 return nil, err 91 } 92 93 return resp, nil 94 } 95 96 func (e *ExpressRouteCircuitConnectionsServerTransport) dispatchBeginCreateOrUpdate(req *http.Request) (*http.Response, error) { 97 if e.srv.BeginCreateOrUpdate == nil { 98 return nil, &nonRetriableError{errors.New("fake for method BeginCreateOrUpdate not implemented")} 99 } 100 beginCreateOrUpdate := e.beginCreateOrUpdate.get(req) 101 if beginCreateOrUpdate == nil { 102 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/expressRouteCircuits/(?P<circuitName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/peerings/(?P<peeringName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/connections/(?P<connectionName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 103 regex := regexp.MustCompile(regexStr) 104 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 105 if matches == nil || len(matches) < 5 { 106 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 107 } 108 body, err := server.UnmarshalRequestAsJSON[armnetwork.ExpressRouteCircuitConnection](req) 109 if err != nil { 110 return nil, err 111 } 112 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 113 if err != nil { 114 return nil, err 115 } 116 circuitNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("circuitName")]) 117 if err != nil { 118 return nil, err 119 } 120 peeringNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("peeringName")]) 121 if err != nil { 122 return nil, err 123 } 124 connectionNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("connectionName")]) 125 if err != nil { 126 return nil, err 127 } 128 respr, errRespr := e.srv.BeginCreateOrUpdate(req.Context(), resourceGroupNameParam, circuitNameParam, peeringNameParam, connectionNameParam, body, nil) 129 if respErr := server.GetError(errRespr, req); respErr != nil { 130 return nil, respErr 131 } 132 beginCreateOrUpdate = &respr 133 e.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 e.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 e.beginCreateOrUpdate.remove(req) 147 } 148 149 return resp, nil 150 } 151 152 func (e *ExpressRouteCircuitConnectionsServerTransport) dispatchBeginDelete(req *http.Request) (*http.Response, error) { 153 if e.srv.BeginDelete == nil { 154 return nil, &nonRetriableError{errors.New("fake for method BeginDelete not implemented")} 155 } 156 beginDelete := e.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/expressRouteCircuits/(?P<circuitName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/peerings/(?P<peeringName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/connections/(?P<connectionName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 159 regex := regexp.MustCompile(regexStr) 160 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 161 if matches == nil || len(matches) < 5 { 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 circuitNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("circuitName")]) 169 if err != nil { 170 return nil, err 171 } 172 peeringNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("peeringName")]) 173 if err != nil { 174 return nil, err 175 } 176 connectionNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("connectionName")]) 177 if err != nil { 178 return nil, err 179 } 180 respr, errRespr := e.srv.BeginDelete(req.Context(), resourceGroupNameParam, circuitNameParam, peeringNameParam, connectionNameParam, nil) 181 if respErr := server.GetError(errRespr, req); respErr != nil { 182 return nil, respErr 183 } 184 beginDelete = &respr 185 e.beginDelete.add(req, beginDelete) 186 } 187 188 resp, err := server.PollerResponderNext(beginDelete, req) 189 if err != nil { 190 return nil, err 191 } 192 193 if !contains([]int{http.StatusOK, http.StatusAccepted, http.StatusNoContent}, resp.StatusCode) { 194 e.beginDelete.remove(req) 195 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted, http.StatusNoContent", resp.StatusCode)} 196 } 197 if !server.PollerResponderMore(beginDelete) { 198 e.beginDelete.remove(req) 199 } 200 201 return resp, nil 202 } 203 204 func (e *ExpressRouteCircuitConnectionsServerTransport) dispatchGet(req *http.Request) (*http.Response, error) { 205 if e.srv.Get == nil { 206 return nil, &nonRetriableError{errors.New("fake for method Get not implemented")} 207 } 208 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/expressRouteCircuits/(?P<circuitName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/peerings/(?P<peeringName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/connections/(?P<connectionName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 209 regex := regexp.MustCompile(regexStr) 210 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 211 if matches == nil || len(matches) < 5 { 212 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 213 } 214 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 215 if err != nil { 216 return nil, err 217 } 218 circuitNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("circuitName")]) 219 if err != nil { 220 return nil, err 221 } 222 peeringNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("peeringName")]) 223 if err != nil { 224 return nil, err 225 } 226 connectionNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("connectionName")]) 227 if err != nil { 228 return nil, err 229 } 230 respr, errRespr := e.srv.Get(req.Context(), resourceGroupNameParam, circuitNameParam, peeringNameParam, connectionNameParam, nil) 231 if respErr := server.GetError(errRespr, req); respErr != nil { 232 return nil, respErr 233 } 234 respContent := server.GetResponseContent(respr) 235 if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { 236 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} 237 } 238 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).ExpressRouteCircuitConnection, req) 239 if err != nil { 240 return nil, err 241 } 242 return resp, nil 243 } 244 245 func (e *ExpressRouteCircuitConnectionsServerTransport) dispatchNewListPager(req *http.Request) (*http.Response, error) { 246 if e.srv.NewListPager == nil { 247 return nil, &nonRetriableError{errors.New("fake for method NewListPager not implemented")} 248 } 249 newListPager := e.newListPager.get(req) 250 if newListPager == nil { 251 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/expressRouteCircuits/(?P<circuitName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/peerings/(?P<peeringName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/connections` 252 regex := regexp.MustCompile(regexStr) 253 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 254 if matches == nil || len(matches) < 4 { 255 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 256 } 257 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 258 if err != nil { 259 return nil, err 260 } 261 circuitNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("circuitName")]) 262 if err != nil { 263 return nil, err 264 } 265 peeringNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("peeringName")]) 266 if err != nil { 267 return nil, err 268 } 269 resp := e.srv.NewListPager(resourceGroupNameParam, circuitNameParam, peeringNameParam, nil) 270 newListPager = &resp 271 e.newListPager.add(req, newListPager) 272 server.PagerResponderInjectNextLinks(newListPager, req, func(page *armnetwork.ExpressRouteCircuitConnectionsClientListResponse, createLink func() string) { 273 page.NextLink = to.Ptr(createLink()) 274 }) 275 } 276 resp, err := server.PagerResponderNext(newListPager, req) 277 if err != nil { 278 return nil, err 279 } 280 if !contains([]int{http.StatusOK}, resp.StatusCode) { 281 e.newListPager.remove(req) 282 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)} 283 } 284 if !server.PagerResponderMore(newListPager) { 285 e.newListPager.remove(req) 286 } 287 return resp, nil 288 }