github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/webapplicationfirewall_live_test.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  
     7  package armnetwork_test
     8  
     9  import (
    10  	"context"
    11  	"fmt"
    12  	"testing"
    13  
    14  	"github.com/Azure/azure-sdk-for-go/sdk/azcore"
    15  	"github.com/Azure/azure-sdk-for-go/sdk/azcore/arm"
    16  	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
    17  	"github.com/Azure/azure-sdk-for-go/sdk/internal/recording"
    18  	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v3/testutil"
    19  	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6"
    20  	"github.com/stretchr/testify/suite"
    21  )
    22  
    23  type WebapplicationfirewallTestSuite struct {
    24  	suite.Suite
    25  
    26  	ctx               context.Context
    27  	cred              azcore.TokenCredential
    28  	options           *arm.ClientOptions
    29  	policyName        string
    30  	location          string
    31  	resourceGroupName string
    32  	subscriptionId    string
    33  }
    34  
    35  func (testsuite *WebapplicationfirewallTestSuite) SetupSuite() {
    36  	testutil.StartRecording(testsuite.T(), pathToPackage)
    37  
    38  	testsuite.ctx = context.Background()
    39  	testsuite.cred, testsuite.options = testutil.GetCredAndClientOptions(testsuite.T())
    40  	testsuite.policyName, _ = recording.GenerateAlphaNumericID(testsuite.T(), "wafpolicyname", 19, false)
    41  	testsuite.location = recording.GetEnvVariable("LOCATION", "westus")
    42  	testsuite.resourceGroupName = recording.GetEnvVariable("RESOURCE_GROUP_NAME", "scenarioTestTempGroup")
    43  	testsuite.subscriptionId = recording.GetEnvVariable("AZURE_SUBSCRIPTION_ID", "00000000-0000-0000-0000-000000000000")
    44  	resourceGroup, _, err := testutil.CreateResourceGroup(testsuite.ctx, testsuite.subscriptionId, testsuite.cred, testsuite.options, testsuite.location)
    45  	testsuite.Require().NoError(err)
    46  	testsuite.resourceGroupName = *resourceGroup.Name
    47  }
    48  
    49  func (testsuite *WebapplicationfirewallTestSuite) TearDownSuite() {
    50  	_, err := testutil.DeleteResourceGroup(testsuite.ctx, testsuite.subscriptionId, testsuite.cred, testsuite.options, testsuite.resourceGroupName)
    51  	testsuite.Require().NoError(err)
    52  	testutil.StopRecording(testsuite.T())
    53  }
    54  
    55  func TestWebapplicationfirewallTestSuite(t *testing.T) {
    56  	suite.Run(t, new(WebapplicationfirewallTestSuite))
    57  }
    58  
    59  // Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/{policyName}
    60  func (testsuite *WebapplicationfirewallTestSuite) TestWebApplicationFirewallPolicies() {
    61  	var err error
    62  	// From step WebApplicationFirewallPolicies_CreateOrUpdate
    63  	fmt.Println("Call operation: WebApplicationFirewallPolicies_CreateOrUpdate")
    64  	webApplicationFirewallPoliciesClient, err := armnetwork.NewWebApplicationFirewallPoliciesClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
    65  	testsuite.Require().NoError(err)
    66  	_, err = webApplicationFirewallPoliciesClient.CreateOrUpdate(testsuite.ctx, testsuite.resourceGroupName, testsuite.policyName, armnetwork.WebApplicationFirewallPolicy{
    67  		Location: to.Ptr(testsuite.location),
    68  		Properties: &armnetwork.WebApplicationFirewallPolicyPropertiesFormat{
    69  			ManagedRules: &armnetwork.ManagedRulesDefinition{
    70  				ManagedRuleSets: []*armnetwork.ManagedRuleSet{
    71  					{
    72  						RuleGroupOverrides: []*armnetwork.ManagedRuleGroupOverride{
    73  							{
    74  								RuleGroupName: to.Ptr("REQUEST-931-APPLICATION-ATTACK-RFI"),
    75  								Rules: []*armnetwork.ManagedRuleOverride{
    76  									{
    77  										Action: to.Ptr(armnetwork.ActionTypeLog),
    78  										RuleID: to.Ptr("931120"),
    79  										State:  to.Ptr(armnetwork.ManagedRuleEnabledStateEnabled),
    80  									}},
    81  							}},
    82  						RuleSetType:    to.Ptr("OWASP"),
    83  						RuleSetVersion: to.Ptr("3.2"),
    84  					}},
    85  			},
    86  		},
    87  	}, nil)
    88  	testsuite.Require().NoError(err)
    89  
    90  	// From step WebApplicationFirewallPolicies_List
    91  	fmt.Println("Call operation: WebApplicationFirewallPolicies_List")
    92  	webApplicationFirewallPoliciesClientNewListPager := webApplicationFirewallPoliciesClient.NewListPager(testsuite.resourceGroupName, nil)
    93  	for webApplicationFirewallPoliciesClientNewListPager.More() {
    94  		_, err := webApplicationFirewallPoliciesClientNewListPager.NextPage(testsuite.ctx)
    95  		testsuite.Require().NoError(err)
    96  		break
    97  	}
    98  
    99  	// From step WebApplicationFirewallPolicies_ListAll
   100  	fmt.Println("Call operation: WebApplicationFirewallPolicies_ListAll")
   101  	webApplicationFirewallPoliciesClientNewListAllPager := webApplicationFirewallPoliciesClient.NewListAllPager(nil)
   102  	for webApplicationFirewallPoliciesClientNewListAllPager.More() {
   103  		_, err := webApplicationFirewallPoliciesClientNewListAllPager.NextPage(testsuite.ctx)
   104  		testsuite.Require().NoError(err)
   105  		break
   106  	}
   107  
   108  	// From step WebApplicationFirewallPolicies_Get
   109  	fmt.Println("Call operation: WebApplicationFirewallPolicies_Get")
   110  	_, err = webApplicationFirewallPoliciesClient.Get(testsuite.ctx, testsuite.resourceGroupName, testsuite.policyName, nil)
   111  	testsuite.Require().NoError(err)
   112  
   113  	// From step WebApplicationFirewallPolicies_Delete
   114  	fmt.Println("Call operation: WebApplicationFirewallPolicies_Delete")
   115  	webApplicationFirewallPoliciesClientDeleteResponsePoller, err := webApplicationFirewallPoliciesClient.BeginDelete(testsuite.ctx, testsuite.resourceGroupName, testsuite.policyName, nil)
   116  	testsuite.Require().NoError(err)
   117  	_, err = testutil.PollForTest(testsuite.ctx, webApplicationFirewallPoliciesClientDeleteResponsePoller)
   118  	testsuite.Require().NoError(err)
   119  }