github.com/newrelic/newrelic-client-go@v1.1.0/pkg/nerdstorage/nerdstorage_integration_test.go (about) 1 //go:build integration 2 // +build integration 3 4 package nerdstorage 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 11 mock "github.com/newrelic/newrelic-client-go/pkg/testhelpers" 12 ) 13 14 var ( 15 testPackageID = "8e57e72a-e3ac-4272-9bb8-aea1d71dde3d" 16 testEntityID = "MjUyMDUyOHxBUE18QVBQTElDQVRJT058MjE1MDM3Nzk1" 17 testCollection = "myCol" 18 testDocumentID = "myDoc" 19 testAlternateDocumentID = "myOtherDoc" 20 testDocument = struct { 21 MyField string 22 }{ 23 MyField: "myVal", 24 } 25 testGetDocumentInput = GetDocumentInput{ 26 PackageID: testPackageID, 27 Collection: testCollection, 28 DocumentID: testDocumentID, 29 } 30 testGetCollectionInput = GetCollectionInput{ 31 PackageID: testPackageID, 32 Collection: testCollection, 33 } 34 testWriteInput = WriteDocumentInput{ 35 PackageID: testPackageID, 36 Collection: testCollection, 37 DocumentID: testDocumentID, 38 Document: testDocument, 39 } 40 testDeleteDocumentInput = DeleteDocumentInput{ 41 PackageID: testPackageID, 42 Collection: testCollection, 43 DocumentID: testDocumentID, 44 } 45 testDeleteCollectionInput = DeleteCollectionInput{ 46 PackageID: testPackageID, 47 Collection: testCollection, 48 } 49 ) 50 51 func TestIntegrationNerdStorageWithAccountScope(t *testing.T) { 52 t.Parallel() 53 54 testAccountID, err := mock.GetTestAccountID() 55 if err != nil { 56 t.Skipf("%s", err) 57 } 58 59 client := newIntegrationTestClient(t) 60 61 document, err := client.WriteDocumentWithAccountScope(testAccountID, testWriteInput) 62 require.NoError(t, err) 63 require.NotNil(t, document) 64 65 testAlternateWriteInput := testWriteInput 66 testAlternateWriteInput.DocumentID = testAlternateDocumentID 67 68 document, err = client.WriteDocumentWithAccountScope(testAccountID, testAlternateWriteInput) 69 require.NoError(t, err) 70 require.NotNil(t, document) 71 72 collection, err := client.GetCollectionWithAccountScope(testAccountID, testGetCollectionInput) 73 require.NoError(t, err) 74 require.NotNil(t, collection) 75 76 document, err = client.GetDocumentWithAccountScope(testAccountID, testGetDocumentInput) 77 require.NoError(t, err) 78 require.NotNil(t, document) 79 80 ok, err := client.DeleteDocumentWithAccountScope(testAccountID, testDeleteDocumentInput) 81 require.NoError(t, err) 82 require.True(t, ok) 83 84 ok, err = client.DeleteCollectionWithAccountScope(testAccountID, testDeleteCollectionInput) 85 require.NoError(t, err) 86 require.True(t, ok) 87 } 88 89 func TestIntegrationNerdStorageWithUserScope(t *testing.T) { 90 t.Parallel() 91 92 client := newIntegrationTestClient(t) 93 94 document, err := client.WriteDocumentWithUserScope(testWriteInput) 95 require.NoError(t, err) 96 require.NotNil(t, document) 97 98 testAlternateWriteInput := testWriteInput 99 testAlternateWriteInput.DocumentID = testAlternateDocumentID 100 101 document, err = client.WriteDocumentWithUserScope(testAlternateWriteInput) 102 require.NoError(t, err) 103 require.NotNil(t, document) 104 105 collection, err := client.GetCollectionWithUserScope(testGetCollectionInput) 106 require.NoError(t, err) 107 require.NotNil(t, collection) 108 109 document, err = client.GetDocumentWithUserScope(testGetDocumentInput) 110 require.NoError(t, err) 111 require.NotNil(t, document) 112 113 ok, err := client.DeleteDocumentWithUserScope(testDeleteDocumentInput) 114 require.NoError(t, err) 115 require.True(t, ok) 116 117 ok, err = client.DeleteCollectionWithUserScope(testDeleteCollectionInput) 118 require.NoError(t, err) 119 require.True(t, ok) 120 } 121 122 func TestIntegrationNerdStorageWithEntityScope(t *testing.T) { 123 t.Parallel() 124 125 client := newIntegrationTestClient(t) 126 127 document, err := client.WriteDocumentWithEntityScope(testEntityID, testWriteInput) 128 require.NoError(t, err) 129 require.NotNil(t, document) 130 131 testAlternateWriteInput := testWriteInput 132 testAlternateWriteInput.DocumentID = testAlternateDocumentID 133 134 document, err = client.WriteDocumentWithEntityScope(testEntityID, testAlternateWriteInput) 135 require.NoError(t, err) 136 require.NotNil(t, document) 137 138 collection, err := client.GetCollectionWithEntityScope(testEntityID, testGetCollectionInput) 139 require.NoError(t, err) 140 require.NotNil(t, collection) 141 142 document, err = client.GetDocumentWithEntityScope(testEntityID, testGetDocumentInput) 143 require.NoError(t, err) 144 require.NotNil(t, document) 145 146 ok, err := client.DeleteDocumentWithEntityScope(testEntityID, testDeleteDocumentInput) 147 require.NoError(t, err) 148 require.True(t, ok) 149 150 ok, err = client.DeleteCollectionWithEntityScope(testEntityID, testDeleteCollectionInput) 151 require.NoError(t, err) 152 require.True(t, ok) 153 } 154 155 func newIntegrationTestClient(t *testing.T) NerdStorage { 156 tc := mock.NewIntegrationTestConfig(t) 157 158 return New(tc) 159 }