| 
									
										
										
										
											2019-08-18 02:29:09 +05:30
										 |  |  | package clouddns | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"context" | 
					
						
							|  |  |  | 	"testing" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/caddyserver/caddy" | 
					
						
							|  |  |  | 	"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) | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |