mirror of
				https://github.com/coredns/coredns.git
				synced 2025-11-04 03:03:14 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package traffic
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/caddyserver/caddy"
 | 
						|
)
 | 
						|
 | 
						|
func TestSetup(t *testing.T) {
 | 
						|
	c := caddy.NewTestController("dns", `traffic grpc://127.0.0.1`)
 | 
						|
	if err := setup(c); err != nil {
 | 
						|
		t.Fatalf("Test 1, expected no errors, but got: %q", err)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestParseTraffic(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		input     string
 | 
						|
		shouldErr bool
 | 
						|
	}{
 | 
						|
		// ok
 | 
						|
		{`traffic grpc://127.0.0.1:18000 {
 | 
						|
			id test-id
 | 
						|
		}`, false},
 | 
						|
 | 
						|
		// fail
 | 
						|
		{`traffic`, true},
 | 
						|
		{`traffic tls://1.1.1.1`, true},
 | 
						|
		{`traffic {
 | 
						|
			id bla bla
 | 
						|
		}`, true},
 | 
						|
		{`traffic {
 | 
						|
			node
 | 
						|
		}`, true},
 | 
						|
	}
 | 
						|
	for i, test := range tests {
 | 
						|
		c := caddy.NewTestController("dns", test.input)
 | 
						|
		_, err := parseTraffic(c)
 | 
						|
		if test.shouldErr && err == nil {
 | 
						|
			t.Errorf("Test %v: Expected error but found nil", i)
 | 
						|
			continue
 | 
						|
		} else if !test.shouldErr && err != nil {
 | 
						|
			t.Errorf("Test %v: Expected no error but found error: %v", i, err)
 | 
						|
			continue
 | 
						|
		}
 | 
						|
 | 
						|
		if test.shouldErr {
 | 
						|
			continue
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func testParseLocality(t *testing.T) {
 | 
						|
	s := "region"
 | 
						|
	locs, err := parseLocality(s)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
	if locs[0].Region != "region" {
 | 
						|
		t.Errorf("Expected %s, but got %s", "region", locs[0].Region)
 | 
						|
	}
 | 
						|
 | 
						|
	s = "region1,zone,sub region2"
 | 
						|
	locs, err = parseLocality(s)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
	if locs[0].Zone != "zone" {
 | 
						|
		t.Errorf("Expected %s, but got %s", "zone", locs[1].Zone)
 | 
						|
	}
 | 
						|
	if locs[0].SubZone != "sub" {
 | 
						|
		t.Errorf("Expected %s, but got %s", "sub", locs[1].SubZone)
 | 
						|
	}
 | 
						|
	if locs[1].Region != "region2" {
 | 
						|
		t.Errorf("Expected %s, but got %s", "region2", locs[1].Region)
 | 
						|
	}
 | 
						|
	if locs[1].Zone != "" {
 | 
						|
		t.Errorf("Expected %s, but got %s", "", locs[1].Zone)
 | 
						|
	}
 | 
						|
}
 |