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  }