github.com/newrelic/newrelic-client-go@v1.1.0/pkg/alerts/multi_location_synthetics_conditions_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package alerts 5 6 import ( 7 "net/http" 8 "testing" 9 10 "github.com/stretchr/testify/require" 11 ) 12 13 var ( 14 testMultiLocationSyntheticsConditionPolicyID = 111111 15 testMultiLocationSyntheticsConditionsJSON = ` 16 { 17 "location_failure_conditions": [ 18 { 19 "id": 11425367, 20 "name": "Zach is testing", 21 "enabled": true, 22 "entities": [ 23 "0d3d7d23-9d7e-44ba-ac74-242ce325161c", 24 "767958fe-f47a-49ac-88e3-9fbd0d85b2a0", 25 "5d968daa-a226-45b9-b877-1d6601e599d8" 26 ], 27 "terms": [ 28 { 29 "priority": "warning", 30 "threshold": 1 31 }, 32 { 33 "priority": "critical", 34 "threshold": 2 35 } 36 ], 37 "violation_time_limit_seconds": 3600 38 } 39 ] 40 } 41 ` 42 43 testMultiLocationSyntheticsConditionJSON = ` 44 { 45 "location_failure_condition": { 46 "id": 11425367, 47 "name": "Zach is testing", 48 "enabled": true, 49 "entities": [ 50 "0d3d7d23-9d7e-44ba-ac74-242ce325161c", 51 "767958fe-f47a-49ac-88e3-9fbd0d85b2a0", 52 "5d968daa-a226-45b9-b877-1d6601e599d8" 53 ], 54 "terms": [ 55 { 56 "priority": "warning", 57 "threshold": 1 58 }, 59 { 60 "priority": "critical", 61 "threshold": 2 62 } 63 ], 64 "violation_time_limit_seconds": 3600 65 } 66 } 67 ` 68 69 testMultiLocationSyntheticsCondition = MultiLocationSyntheticsCondition{ 70 ID: 11425367, 71 Name: "Zach is testing", 72 Enabled: true, 73 Entities: []string{ 74 "0d3d7d23-9d7e-44ba-ac74-242ce325161c", 75 "767958fe-f47a-49ac-88e3-9fbd0d85b2a0", 76 "5d968daa-a226-45b9-b877-1d6601e599d8", 77 }, 78 Terms: []MultiLocationSyntheticsConditionTerm{ 79 {"warning", 1}, 80 {"critical", 2}, 81 }, 82 ViolationTimeLimitSeconds: 3600, 83 } 84 85 testCreateMultiLocationSyntheticsCondition = MultiLocationSyntheticsCondition{ 86 Name: "Zach is testing", 87 Enabled: true, 88 Entities: []string{ 89 "0d3d7d23-9d7e-44ba-ac74-242ce325161c", 90 "767958fe-f47a-49ac-88e3-9fbd0d85b2a0", 91 "5d968daa-a226-45b9-b877-1d6601e599d8", 92 }, 93 Terms: []MultiLocationSyntheticsConditionTerm{ 94 {"warning", 1}, 95 {"critical", 2}, 96 }, 97 ViolationTimeLimitSeconds: 3600, 98 } 99 ) 100 101 func TestListMultiLocationSyntheticsConditions(t *testing.T) { 102 t.Parallel() 103 respJSON := testMultiLocationSyntheticsConditionsJSON 104 alerts := newMockResponse(t, respJSON, http.StatusOK) 105 106 expected := []*MultiLocationSyntheticsCondition{&testMultiLocationSyntheticsCondition} 107 108 actual, err := alerts.ListMultiLocationSyntheticsConditions(testMultiLocationSyntheticsConditionPolicyID) 109 110 require.NoError(t, err) 111 require.NotNil(t, actual) 112 require.Equal(t, expected, actual) 113 } 114 115 func TestCreateMultiLocationSyntheticsCondition(t *testing.T) { 116 t.Parallel() 117 respJSON := testMultiLocationSyntheticsConditionJSON 118 alerts := newMockResponse(t, respJSON, http.StatusOK) 119 120 expected := &testMultiLocationSyntheticsCondition 121 122 actual, err := alerts.CreateMultiLocationSyntheticsCondition(testCreateMultiLocationSyntheticsCondition, testMultiLocationSyntheticsConditionPolicyID) 123 124 require.NoError(t, err) 125 require.NotNil(t, actual) 126 require.Equal(t, expected, actual) 127 } 128 129 func TestUpdateMultiLocationSyntheticsCondition(t *testing.T) { 130 t.Parallel() 131 respJSON := testMultiLocationSyntheticsConditionJSON 132 alerts := newMockResponse(t, respJSON, http.StatusOK) 133 134 expected := &testMultiLocationSyntheticsCondition 135 136 actual, err := alerts.UpdateMultiLocationSyntheticsCondition(testMultiLocationSyntheticsCondition) 137 138 require.NoError(t, err) 139 require.NotNil(t, actual) 140 require.Equal(t, expected, actual) 141 } 142 143 func TestDeleteMultiLocationSyntheticsCondition(t *testing.T) { 144 t.Parallel() 145 respJSON := testMultiLocationSyntheticsConditionJSON 146 alerts := newMockResponse(t, respJSON, http.StatusOK) 147 148 expected := &testMultiLocationSyntheticsCondition 149 150 actual, err := alerts.DeleteMultiLocationSyntheticsCondition(testMultiLocationSyntheticsCondition.ID) 151 152 require.NoError(t, err) 153 require.NotNil(t, actual) 154 require.Equal(t, expected, actual) 155 }