github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/fake/managerdeploymentstatus_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/resourcemanager/network/armnetwork/v6"
    19  	"net/http"
    20  	"net/url"
    21  	"regexp"
    22  	"strconv"
    23  )
    24  
    25  // ManagerDeploymentStatusServer is a fake server for instances of the armnetwork.ManagerDeploymentStatusClient type.
    26  type ManagerDeploymentStatusServer struct {
    27  	// List is the fake for method ManagerDeploymentStatusClient.List
    28  	// HTTP status codes to indicate success: http.StatusOK
    29  	List func(ctx context.Context, resourceGroupName string, networkManagerName string, parameters armnetwork.ManagerDeploymentStatusParameter, options *armnetwork.ManagerDeploymentStatusClientListOptions) (resp azfake.Responder[armnetwork.ManagerDeploymentStatusClientListResponse], errResp azfake.ErrorResponder)
    30  }
    31  
    32  // NewManagerDeploymentStatusServerTransport creates a new instance of ManagerDeploymentStatusServerTransport with the provided implementation.
    33  // The returned ManagerDeploymentStatusServerTransport instance is connected to an instance of armnetwork.ManagerDeploymentStatusClient via the
    34  // azcore.ClientOptions.Transporter field in the client's constructor parameters.
    35  func NewManagerDeploymentStatusServerTransport(srv *ManagerDeploymentStatusServer) *ManagerDeploymentStatusServerTransport {
    36  	return &ManagerDeploymentStatusServerTransport{srv: srv}
    37  }
    38  
    39  // ManagerDeploymentStatusServerTransport connects instances of armnetwork.ManagerDeploymentStatusClient to instances of ManagerDeploymentStatusServer.
    40  // Don't use this type directly, use NewManagerDeploymentStatusServerTransport instead.
    41  type ManagerDeploymentStatusServerTransport struct {
    42  	srv *ManagerDeploymentStatusServer
    43  }
    44  
    45  // Do implements the policy.Transporter interface for ManagerDeploymentStatusServerTransport.
    46  func (m *ManagerDeploymentStatusServerTransport) Do(req *http.Request) (*http.Response, error) {
    47  	rawMethod := req.Context().Value(runtime.CtxAPINameKey{})
    48  	method, ok := rawMethod.(string)
    49  	if !ok {
    50  		return nil, nonRetriableError{errors.New("unable to dispatch request, missing value for CtxAPINameKey")}
    51  	}
    52  
    53  	var resp *http.Response
    54  	var err error
    55  
    56  	switch method {
    57  	case "ManagerDeploymentStatusClient.List":
    58  		resp, err = m.dispatchList(req)
    59  	default:
    60  		err = fmt.Errorf("unhandled API %s", method)
    61  	}
    62  
    63  	if err != nil {
    64  		return nil, err
    65  	}
    66  
    67  	return resp, nil
    68  }
    69  
    70  func (m *ManagerDeploymentStatusServerTransport) dispatchList(req *http.Request) (*http.Response, error) {
    71  	if m.srv.List == nil {
    72  		return nil, &nonRetriableError{errors.New("fake for method List not implemented")}
    73  	}
    74  	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~%@]+)/listDeploymentStatus`
    75  	regex := regexp.MustCompile(regexStr)
    76  	matches := regex.FindStringSubmatch(req.URL.EscapedPath())
    77  	if matches == nil || len(matches) < 3 {
    78  		return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
    79  	}
    80  	qp := req.URL.Query()
    81  	body, err := server.UnmarshalRequestAsJSON[armnetwork.ManagerDeploymentStatusParameter](req)
    82  	if err != nil {
    83  		return nil, err
    84  	}
    85  	resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
    86  	if err != nil {
    87  		return nil, err
    88  	}
    89  	networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")])
    90  	if err != nil {
    91  		return nil, err
    92  	}
    93  	topUnescaped, err := url.QueryUnescape(qp.Get("$top"))
    94  	if err != nil {
    95  		return nil, err
    96  	}
    97  	topParam, err := parseOptional(topUnescaped, func(v string) (int32, error) {
    98  		p, parseErr := strconv.ParseInt(v, 10, 32)
    99  		if parseErr != nil {
   100  			return 0, parseErr
   101  		}
   102  		return int32(p), nil
   103  	})
   104  	if err != nil {
   105  		return nil, err
   106  	}
   107  	var options *armnetwork.ManagerDeploymentStatusClientListOptions
   108  	if topParam != nil {
   109  		options = &armnetwork.ManagerDeploymentStatusClientListOptions{
   110  			Top: topParam,
   111  		}
   112  	}
   113  	respr, errRespr := m.srv.List(req.Context(), resourceGroupNameParam, networkManagerNameParam, body, options)
   114  	if respErr := server.GetError(errRespr, req); respErr != nil {
   115  		return nil, respErr
   116  	}
   117  	respContent := server.GetResponseContent(respr)
   118  	if !contains([]int{http.StatusOK}, respContent.HTTPStatus) {
   119  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)}
   120  	}
   121  	resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).ManagerDeploymentStatusListResult, req)
   122  	if err != nil {
   123  		return nil, err
   124  	}
   125  	return resp, nil
   126  }