@@ -341,3 +341,106 @@ func TestResourceProvider_validate_warns(t *testing.T) {
341341 t .Fatalf ("bad: %#v" , w )
342342 }
343343}
344+
345+ func TestResourceProvider_validateResource (t * testing.T ) {
346+ p := new (terraform.MockResourceProvider )
347+ client , server := testClientServer (t )
348+ name , err := Register (server , p )
349+ if err != nil {
350+ t .Fatalf ("err: %s" , err )
351+ }
352+ provider := & ResourceProvider {Client : client , Name : name }
353+
354+ // Configure
355+ config := & terraform.ResourceConfig {
356+ Raw : map [string ]interface {}{"foo" : "bar" },
357+ }
358+ w , e := provider .ValidateResource ("foo" , config )
359+ if ! p .ValidateResourceCalled {
360+ t .Fatal ("configure should be called" )
361+ }
362+ if p .ValidateResourceType != "foo" {
363+ t .Fatalf ("bad: %#v" , p .ValidateResourceType )
364+ }
365+ if ! reflect .DeepEqual (p .ValidateResourceConfig , config ) {
366+ t .Fatalf ("bad: %#v" , p .ValidateResourceConfig )
367+ }
368+ if w != nil {
369+ t .Fatalf ("bad: %#v" , w )
370+ }
371+ if e != nil {
372+ t .Fatalf ("bad: %#v" , e )
373+ }
374+ }
375+
376+ func TestResourceProvider_validateResource_errors (t * testing.T ) {
377+ p := new (terraform.MockResourceProvider )
378+ p .ValidateResourceReturnErrors = []error {errors .New ("foo" )}
379+
380+ client , server := testClientServer (t )
381+ name , err := Register (server , p )
382+ if err != nil {
383+ t .Fatalf ("err: %s" , err )
384+ }
385+ provider := & ResourceProvider {Client : client , Name : name }
386+
387+ // Configure
388+ config := & terraform.ResourceConfig {
389+ Raw : map [string ]interface {}{"foo" : "bar" },
390+ }
391+ w , e := provider .ValidateResource ("foo" , config )
392+ if ! p .ValidateResourceCalled {
393+ t .Fatal ("configure should be called" )
394+ }
395+ if p .ValidateResourceType != "foo" {
396+ t .Fatalf ("bad: %#v" , p .ValidateResourceType )
397+ }
398+ if ! reflect .DeepEqual (p .ValidateResourceConfig , config ) {
399+ t .Fatalf ("bad: %#v" , p .ValidateResourceConfig )
400+ }
401+ if w != nil {
402+ t .Fatalf ("bad: %#v" , w )
403+ }
404+
405+ if len (e ) != 1 {
406+ t .Fatalf ("bad: %#v" , e )
407+ }
408+ if e [0 ].Error () != "foo" {
409+ t .Fatalf ("bad: %#v" , e )
410+ }
411+ }
412+
413+ func TestResourceProvider_validateResource_warns (t * testing.T ) {
414+ p := new (terraform.MockResourceProvider )
415+ p .ValidateResourceReturnWarns = []string {"foo" }
416+
417+ client , server := testClientServer (t )
418+ name , err := Register (server , p )
419+ if err != nil {
420+ t .Fatalf ("err: %s" , err )
421+ }
422+ provider := & ResourceProvider {Client : client , Name : name }
423+
424+ // Configure
425+ config := & terraform.ResourceConfig {
426+ Raw : map [string ]interface {}{"foo" : "bar" },
427+ }
428+ w , e := provider .ValidateResource ("foo" , config )
429+ if ! p .ValidateResourceCalled {
430+ t .Fatal ("configure should be called" )
431+ }
432+ if p .ValidateResourceType != "foo" {
433+ t .Fatalf ("bad: %#v" , p .ValidateResourceType )
434+ }
435+ if ! reflect .DeepEqual (p .ValidateResourceConfig , config ) {
436+ t .Fatalf ("bad: %#v" , p .ValidateResourceConfig )
437+ }
438+ if e != nil {
439+ t .Fatalf ("bad: %#v" , e )
440+ }
441+
442+ expected := []string {"foo" }
443+ if ! reflect .DeepEqual (w , expected ) {
444+ t .Fatalf ("bad: %#v" , w )
445+ }
446+ }
0 commit comments