github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/fake/scopeconnections_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 "strconv" 24 ) 25 26 // ScopeConnectionsServer is a fake server for instances of the armnetwork.ScopeConnectionsClient type. 27 type ScopeConnectionsServer struct { 28 // CreateOrUpdate is the fake for method ScopeConnectionsClient.CreateOrUpdate 29 // HTTP status codes to indicate success: http.StatusOK, http.StatusCreated 30 CreateOrUpdate func(ctx context.Context, resourceGroupName string, networkManagerName string, scopeConnectionName string, parameters armnetwork.ScopeConnection, options *armnetwork.ScopeConnectionsClientCreateOrUpdateOptions) (resp azfake.Responder[armnetwork.ScopeConnectionsClientCreateOrUpdateResponse], errResp azfake.ErrorResponder) 31 32 // Delete is the fake for method ScopeConnectionsClient.Delete 33 // HTTP status codes to indicate success: http.StatusOK, http.StatusNoContent 34 Delete func(ctx context.Context, resourceGroupName string, networkManagerName string, scopeConnectionName string, options *armnetwork.ScopeConnectionsClientDeleteOptions) (resp azfake.Responder[armnetwork.ScopeConnectionsClientDeleteResponse], errResp azfake.ErrorResponder) 35 36 // Get is the fake for method ScopeConnectionsClient.Get 37 // HTTP status codes to indicate success: http.StatusOK 38 Get func(ctx context.Context, resourceGroupName string, networkManagerName string, scopeConnectionName string, options *armnetwork.ScopeConnectionsClientGetOptions) (resp azfake.Responder[armnetwork.ScopeConnectionsClientGetResponse], errResp azfake.ErrorResponder) 39 40 // NewListPager is the fake for method ScopeConnectionsClient.NewListPager 41 // HTTP status codes to indicate success: http.StatusOK 42 NewListPager func(resourceGroupName string, networkManagerName string, options *armnetwork.ScopeConnectionsClientListOptions) (resp azfake.PagerResponder[armnetwork.ScopeConnectionsClientListResponse]) 43 } 44 45 // NewScopeConnectionsServerTransport creates a new instance of ScopeConnectionsServerTransport with the provided implementation. 46 // The returned ScopeConnectionsServerTransport instance is connected to an instance of armnetwork.ScopeConnectionsClient via the 47 // azcore.ClientOptions.Transporter field in the client's constructor parameters. 48 func NewScopeConnectionsServerTransport(srv *ScopeConnectionsServer) *ScopeConnectionsServerTransport { 49 return &ScopeConnectionsServerTransport{ 50 srv: srv, 51 newListPager: newTracker[azfake.PagerResponder[armnetwork.ScopeConnectionsClientListResponse]](), 52 } 53 } 54 55 // ScopeConnectionsServerTransport connects instances of armnetwork.ScopeConnectionsClient to instances of ScopeConnectionsServer. 56 // Don't use this type directly, use NewScopeConnectionsServerTransport instead. 57 type ScopeConnectionsServerTransport struct { 58 srv *ScopeConnectionsServer 59 newListPager *tracker[azfake.PagerResponder[armnetwork.ScopeConnectionsClientListResponse]] 60 } 61 62 // Do implements the policy.Transporter interface for ScopeConnectionsServerTransport. 63 func (s *ScopeConnectionsServerTransport) Do(req *http.Request) (*http.Response, error) { 64 rawMethod := req.Context().Value(runtime.CtxAPINameKey{}) 65 method, ok := rawMethod.(string) 66 if !ok { 67 return nil, nonRetriableError{errors.New("unable to dispatch request, missing value for CtxAPINameKey")} 68 } 69 70 var resp *http.Response 71 var err error 72 73 switch method { 74 case "ScopeConnectionsClient.CreateOrUpdate": 75 resp, err = s.dispatchCreateOrUpdate(req) 76 case "ScopeConnectionsClient.Delete": 77 resp, err = s.dispatchDelete(req) 78 case "ScopeConnectionsClient.Get": 79 resp, err = s.dispatchGet(req) 80 case "ScopeConnectionsClient.NewListPager": 81 resp, err = s.dispatchNewListPager(req) 82 default: 83 err = fmt.Errorf("unhandled API %s", method) 84 } 85 86 if err != nil { 87 return nil, err 88 } 89 90 return resp, nil 91 } 92 93 func (s *ScopeConnectionsServerTransport) dispatchCreateOrUpdate(req *http.Request) (*http.Response, error) { 94 if s.srv.CreateOrUpdate == nil { 95 return nil, &nonRetriableError{errors.New("fake for method CreateOrUpdate not implemented")} 96 } 97 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/scopeConnections/(?P<scopeConnectionName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 98 regex := regexp.MustCompile(regexStr) 99 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 100 if matches == nil || len(matches) < 4 { 101 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 102 } 103 body, err := server.UnmarshalRequestAsJSON[armnetwork.ScopeConnection](req) 104 if err != nil { 105 return nil, err 106 } 107 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 108 if err != nil { 109 return nil, err 110 } 111 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 112 if err != nil { 113 return nil, err 114 } 115 scopeConnectionNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("scopeConnectionName")]) 116 if err != nil { 117 return nil, err 118 } 119 respr, errRespr := s.srv.CreateOrUpdate(req.Context(), resourceGroupNameParam, networkManagerNameParam, scopeConnectionNameParam, body, nil) 120 if respErr := server.GetError(errRespr, req); respErr != nil { 121 return nil, respErr 122 } 123 respContent := server.GetResponseContent(respr) 124 if !contains([]int{http.StatusOK, http.StatusCreated}, respContent.HTTPStatus) { 125 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusCreated", respContent.HTTPStatus)} 126 } 127 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).ScopeConnection, req) 128 if err != nil { 129 return nil, err 130 } 131 return resp, nil 132 } 133 134 func (s *ScopeConnectionsServerTransport) dispatchDelete(req *http.Request) (*http.Response, error) { 135 if s.srv.Delete == nil { 136 return nil, &nonRetriableError{errors.New("fake for method Delete not implemented")} 137 } 138 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/scopeConnections/(?P<scopeConnectionName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 139 regex := regexp.MustCompile(regexStr) 140 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 141 if matches == nil || len(matches) < 4 { 142 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 143 } 144 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 145 if err != nil { 146 return nil, err 147 } 148 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 149 if err != nil { 150 return nil, err 151 } 152 scopeConnectionNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("scopeConnectionName")]) 153 if err != nil { 154 return nil, err 155 } 156 respr, errRespr := s.srv.Delete(req.Context(), resourceGroupNameParam, networkManagerNameParam, scopeConnectionNameParam, nil) 157 if respErr := server.GetError(errRespr, req); respErr != nil { 158 return nil, respErr 159 } 160 respContent := server.GetResponseContent(respr) 161 if !contains([]int{http.StatusOK, http.StatusNoContent}, respContent.HTTPStatus) { 162 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusNoContent", respContent.HTTPStatus)} 163 } 164 resp, err := server.NewResponse(respContent, req, nil) 165 if err != nil { 166 return nil, err 167 } 168 return resp, nil 169 } 170 171 func (s *ScopeConnectionsServerTransport) dispatchGet(req *http.Request) (*http.Response, error) { 172 if s.srv.Get == nil { 173 return nil, &nonRetriableError{errors.New("fake for method Get not implemented")} 174 } 175 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/scopeConnections/(?P<scopeConnectionName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 176 regex := regexp.MustCompile(regexStr) 177 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 178 if matches == nil || len(matches) < 4 { 179 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 180 } 181 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 182 if err != nil { 183 return nil, err 184 } 185 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 186 if err != nil { 187 return nil, err 188 } 189 scopeConnectionNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("scopeConnectionName")]) 190 if err != nil { 191 return nil, err 192 } 193 respr, errRespr := s.srv.Get(req.Context(), resourceGroupNameParam, networkManagerNameParam, scopeConnectionNameParam, nil) 194 if respErr := server.GetError(errRespr, req); respErr != nil { 195 return nil, respErr 196 } 197 respContent := server.GetResponseContent(respr) 198 if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { 199 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} 200 } 201 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).ScopeConnection, req) 202 if err != nil { 203 return nil, err 204 } 205 return resp, nil 206 } 207 208 func (s *ScopeConnectionsServerTransport) dispatchNewListPager(req *http.Request) (*http.Response, error) { 209 if s.srv.NewListPager == nil { 210 return nil, &nonRetriableError{errors.New("fake for method NewListPager not implemented")} 211 } 212 newListPager := s.newListPager.get(req) 213 if newListPager == nil { 214 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/scopeConnections` 215 regex := regexp.MustCompile(regexStr) 216 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 217 if matches == nil || len(matches) < 3 { 218 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 219 } 220 qp := req.URL.Query() 221 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 222 if err != nil { 223 return nil, err 224 } 225 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 226 if err != nil { 227 return nil, err 228 } 229 topUnescaped, err := url.QueryUnescape(qp.Get("$top")) 230 if err != nil { 231 return nil, err 232 } 233 topParam, err := parseOptional(topUnescaped, func(v string) (int32, error) { 234 p, parseErr := strconv.ParseInt(v, 10, 32) 235 if parseErr != nil { 236 return 0, parseErr 237 } 238 return int32(p), nil 239 }) 240 if err != nil { 241 return nil, err 242 } 243 skipTokenUnescaped, err := url.QueryUnescape(qp.Get("$skipToken")) 244 if err != nil { 245 return nil, err 246 } 247 skipTokenParam := getOptional(skipTokenUnescaped) 248 var options *armnetwork.ScopeConnectionsClientListOptions 249 if topParam != nil || skipTokenParam != nil { 250 options = &armnetwork.ScopeConnectionsClientListOptions{ 251 Top: topParam, 252 SkipToken: skipTokenParam, 253 } 254 } 255 resp := s.srv.NewListPager(resourceGroupNameParam, networkManagerNameParam, options) 256 newListPager = &resp 257 s.newListPager.add(req, newListPager) 258 server.PagerResponderInjectNextLinks(newListPager, req, func(page *armnetwork.ScopeConnectionsClientListResponse, createLink func() string) { 259 page.NextLink = to.Ptr(createLink()) 260 }) 261 } 262 resp, err := server.PagerResponderNext(newListPager, req) 263 if err != nil { 264 return nil, err 265 } 266 if !contains([]int{http.StatusOK}, resp.StatusCode) { 267 s.newListPager.remove(req) 268 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)} 269 } 270 if !server.PagerResponderMore(newListPager) { 271 s.newListPager.remove(req) 272 } 273 return resp, nil 274 }