| 
									
										
										
										
											2019-08-18 02:29:09 +05:30
										 |  |  | package clouddns
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import (
 | 
					
						
							|  |  |  | 	"context"
 | 
					
						
							|  |  |  | 	"testing"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-24 18:14:41 +02:00
										 |  |  | 	"github.com/coredns/caddy"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-18 02:29:09 +05:30
										 |  |  | 	"google.golang.org/api/option"
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestSetupCloudDNS(t *testing.T) {
 | 
					
						
							| 
									
										
										
										
											2019-10-02 23:18:36 +01:00
										 |  |  | 	f = func(ctx context.Context, opt option.ClientOption) (gcpDNS, error) {
 | 
					
						
							| 
									
										
										
										
											2019-08-18 02:29:09 +05:30
										 |  |  | 		return fakeGCPClient{}, nil
 | 
					
						
							|  |  |  | 	}
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	tests := []struct {
 | 
					
						
							|  |  |  | 		body          string
 | 
					
						
							|  |  |  | 		expectedError bool
 | 
					
						
							|  |  |  | 	}{
 | 
					
						
							|  |  |  | 		{`clouddns`, false},
 | 
					
						
							|  |  |  | 		{`clouddns :`, true},
 | 
					
						
							|  |  |  | 		{`clouddns ::`, true},
 | 
					
						
							|  |  |  | 		{`clouddns example.org.:example-project:zone-name`, false},
 | 
					
						
							|  |  |  | 		{`clouddns example.org.:example-project:zone-name { }`, false},
 | 
					
						
							|  |  |  | 		{`clouddns example.org.:example-project: { }`, true},
 | 
					
						
							|  |  |  | 		{`clouddns example.org.:example-project:zone-name { }`, false},
 | 
					
						
							|  |  |  | 		{`clouddns example.org.:example-project:zone-name { wat
 | 
					
						
							|  |  |  | }`, true},
 | 
					
						
							|  |  |  | 		{`clouddns example.org.:example-project:zone-name {
 | 
					
						
							|  |  |  |     fallthrough
 | 
					
						
							|  |  |  | }`, false},
 | 
					
						
							|  |  |  | 		{`clouddns example.org.:example-project:zone-name {
 | 
					
						
							|  |  |  |     credentials
 | 
					
						
							|  |  |  | }`, true},
 | 
					
						
							|  |  |  | 		{`clouddns example.org.:example-project:zone-name example.org.:example-project:zone-name {
 | 
					
						
							|  |  |  | 	}`, true},
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		{`clouddns example.org {
 | 
					
						
							|  |  |  | 	}`, true},
 | 
					
						
							|  |  |  | 	}
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	for _, test := range tests {
 | 
					
						
							|  |  |  | 		c := caddy.NewTestController("dns", test.body)
 | 
					
						
							| 
									
										
										
										
											2019-10-02 23:18:36 +01:00
										 |  |  | 		if err := setup(c); (err == nil) == test.expectedError {
 | 
					
						
							| 
									
										
										
										
											2019-08-18 02:29:09 +05:30
										 |  |  | 			t.Errorf("Unexpected errors: %v", err)
 | 
					
						
							|  |  |  | 		}
 | 
					
						
							|  |  |  | 	}
 | 
					
						
							|  |  |  | }
 |