@@ -24,6 +24,7 @@ import (
2424
2525 "cloud.google.com/go/internal/testutil"
2626 "github.com/google/go-cmp/cmp"
27+ "github.com/google/go-cmp/cmp/cmpopts"
2728 bq "google.golang.org/api/bigquery/v2"
2829 itest "google.golang.org/api/iterator/testing"
2930)
@@ -310,6 +311,7 @@ func TestDatasets(t *testing.T) {
310311}
311312
312313func TestDatasetToBQ (t * testing.T ) {
314+ testClient := & Client {projectID : "p" }
313315 for _ , test := range []struct {
314316 in * DatasetMetadata
315317 want * bq.Dataset
@@ -325,7 +327,16 @@ func TestDatasetToBQ(t *testing.T) {
325327 },
326328 Location : "EU" ,
327329 Labels : map [string ]string {"x" : "y" },
328- Access : []* AccessEntry {{Role : OwnerRole , Entity : "example.com" , EntityType : DomainEntity }},
330+ Access : []* AccessEntry {
331+ {Role : OwnerRole , Entity : "example.com" , EntityType : DomainEntity },
332+ {
333+ EntityType : DatasetEntity ,
334+ Dataset : & DatasetAccessEntry {
335+ Dataset : testClient .Dataset ("otherdataset" ),
336+ TargetTypes : []string {"VIEWS" },
337+ },
338+ },
339+ },
329340 }, & bq.Dataset {
330341 FriendlyName : "name" ,
331342 Description : "desc" ,
@@ -335,15 +346,26 @@ func TestDatasetToBQ(t *testing.T) {
335346 },
336347 Location : "EU" ,
337348 Labels : map [string ]string {"x" : "y" },
338- Access : []* bq.DatasetAccess {{Role : "OWNER" , Domain : "example.com" }},
349+ Access : []* bq.DatasetAccess {
350+ {Role : "OWNER" , Domain : "example.com" },
351+ {
352+ Dataset : & bq.DatasetAccessEntry {
353+ Dataset : & bq.DatasetReference {
354+ ProjectId : "p" ,
355+ DatasetId : "otherdataset" ,
356+ },
357+ TargetTypes : []string {"VIEWS" },
358+ },
359+ },
360+ },
339361 }},
340362 } {
341363 got , err := test .in .toBQ ()
342364 if err != nil {
343365 t .Fatal (err )
344366 }
345- if ! testutil .Equal (got , test .want ) {
346- t .Errorf ("%v: \n got %+v \n want %+v " , test . in , got , test . want )
367+ if diff := testutil .Diff (got , test .want , cmp . AllowUnexported ( Dataset {})); diff != "" {
368+ t .Errorf ("got=-, want=+: \n %s " , diff )
347369 }
348370 }
349371
@@ -362,6 +384,7 @@ func TestDatasetToBQ(t *testing.T) {
362384}
363385
364386func TestBQToDatasetMetadata (t * testing.T ) {
387+ testClient := & Client {projectID : "p" }
365388 cTime := time .Date (2017 , 1 , 26 , 0 , 0 , 0 , 0 , time .Local )
366389 cMillis := cTime .UnixNano () / 1e6
367390 mTime := time .Date (2017 , 10 , 31 , 0 , 0 , 0 , 0 , time .Local )
@@ -380,6 +403,15 @@ func TestBQToDatasetMetadata(t *testing.T) {
380403 Access : []* bq.DatasetAccess {
381404 {Role : "READER" , UserByEmail : "joe@example.com" },
382405 {Role : "WRITER" , GroupByEmail : "users@example.com" },
406+ {
407+ Dataset : & bq.DatasetAccessEntry {
408+ Dataset : & bq.DatasetReference {
409+ ProjectId : "p" ,
410+ DatasetId : "otherdataset" ,
411+ },
412+ TargetTypes : []string {"VIEWS" },
413+ },
414+ },
383415 },
384416 Etag : "etag" ,
385417 }
@@ -397,14 +429,21 @@ func TestBQToDatasetMetadata(t *testing.T) {
397429 Access : []* AccessEntry {
398430 {Role : ReaderRole , Entity : "joe@example.com" , EntityType : UserEmailEntity },
399431 {Role : WriterRole , Entity : "users@example.com" , EntityType : GroupEmailEntity },
432+ {
433+ EntityType : DatasetEntity ,
434+ Dataset : & DatasetAccessEntry {
435+ Dataset : testClient .Dataset ("otherdataset" ),
436+ TargetTypes : []string {"VIEWS" },
437+ },
438+ },
400439 },
401440 ETag : "etag" ,
402441 }
403- got , err := bqToDatasetMetadata (q )
442+ got , err := bqToDatasetMetadata (q , client )
404443 if err != nil {
405444 t .Fatal (err )
406445 }
407- if diff := testutil .Diff (got , want ); diff != "" {
446+ if diff := testutil .Diff (got , want , cmpopts . IgnoreUnexported ( Dataset {}) ); diff != "" {
408447 t .Errorf ("-got, +want:\n %s" , diff )
409448 }
410449}
0 commit comments