github.com/newrelic/newrelic-client-go@v1.1.0/pkg/alerts/synthetics_conditions_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package alerts 5 6 import ( 7 "fmt" 8 "net/http" 9 "testing" 10 11 "github.com/stretchr/testify/require" 12 ) 13 14 var ( 15 testPolicyID = 12345 16 testSyntheticsCondition = SyntheticsCondition{ 17 Name: "Synthetics Condition", 18 RunbookURL: "https://example.com/runbook.md", 19 MonitorID: "12345678-1234-1234-1234-1234567890ab", 20 Enabled: true, 21 } 22 testSyntheticsConditionJson = ` 23 { 24 "name": "Synthetics Condition", 25 "runbook_url": "https://example.com/runbook.md", 26 "monitor_id": "12345678-1234-1234-1234-1234567890ab", 27 "enabled": true 28 }` 29 ) 30 31 func TestListSyntheticsConditions(t *testing.T) { 32 t.Parallel() 33 respJSON := fmt.Sprintf(`{ "synthetics_conditions": [%s] }`, testSyntheticsConditionJson) 34 alerts := newMockResponse(t, respJSON, http.StatusOK) 35 36 expected := []*SyntheticsCondition{&testSyntheticsCondition} 37 actual, err := alerts.ListSyntheticsConditions(testPolicyID) 38 39 require.NoError(t, err) 40 require.NotNil(t, actual) 41 require.Equal(t, expected, actual) 42 } 43 44 func TestGetSyntheticsCondition(t *testing.T) { 45 t.Parallel() 46 respJSON := fmt.Sprintf(`{ "synthetics_conditions": [%s] }`, testSyntheticsConditionJson) 47 alerts := newMockResponse(t, respJSON, http.StatusOK) 48 49 expected := &testSyntheticsCondition 50 actual, err := alerts.GetSyntheticsCondition(testPolicyID, testSyntheticsCondition.ID) 51 52 require.NoError(t, err) 53 require.NotNil(t, actual) 54 require.Equal(t, expected, actual) 55 } 56 57 func TestCreateSyntheticsCondition(t *testing.T) { 58 t.Parallel() 59 respJSON := fmt.Sprintf(`{ "synthetics_condition": %s }`, testSyntheticsConditionJson) 60 alerts := newMockResponse(t, respJSON, http.StatusOK) 61 62 actual, err := alerts.CreateSyntheticsCondition(testPolicyID, testSyntheticsCondition) 63 64 require.NoError(t, err) 65 require.NotNil(t, actual) 66 require.Equal(t, &testSyntheticsCondition, actual) 67 } 68 69 func TestUpdateSyntheticsCondition(t *testing.T) { 70 t.Parallel() 71 respJSON := fmt.Sprintf(`{ "synthetics_condition": %s }`, testSyntheticsConditionJson) 72 alerts := newMockResponse(t, respJSON, http.StatusOK) 73 74 actual, err := alerts.UpdateSyntheticsCondition(testSyntheticsCondition) 75 76 require.NoError(t, err) 77 require.NotNil(t, actual) 78 require.Equal(t, &testSyntheticsCondition, actual) 79 } 80 81 func TestDeleteSyntheticsCondition(t *testing.T) { 82 t.Parallel() 83 respJSON := fmt.Sprintf(`{ "synthetics_condition": %s }`, testSyntheticsConditionJson) 84 alerts := newMockResponse(t, respJSON, http.StatusOK) 85 86 actual, err := alerts.DeleteSyntheticsCondition(testSyntheticsCondition.ID) 87 88 require.NoError(t, err) 89 require.NotNil(t, actual) 90 require.Equal(t, &testSyntheticsCondition, actual) 91 }