69 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package etcd
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| )
 | |
| 
 | |
| // test whether the name matches
 | |
| func TestEtcdHasName(t *testing.T) {
 | |
| 	testCases := []struct {
 | |
| 		key    string
 | |
| 		prefix string
 | |
| 		name   string
 | |
| 		domain string
 | |
| 		expect bool
 | |
| 	}{
 | |
| 		{
 | |
| 			"/micro/registry/micro/registry",
 | |
| 			"/micro/registry",
 | |
| 			"registry",
 | |
| 			"micro",
 | |
| 			true,
 | |
| 		},
 | |
| 		{
 | |
| 			"/micro/registry/micro",
 | |
| 			"/micro/registry",
 | |
| 			"store",
 | |
| 			"micro",
 | |
| 			false,
 | |
| 		},
 | |
| 		{
 | |
| 			"/prefix/baz/*/registry",
 | |
| 			"/prefix/baz",
 | |
| 			"registry",
 | |
| 			"*",
 | |
| 			true,
 | |
| 		},
 | |
| 		{
 | |
| 			"/prefix/baz",
 | |
| 			"/prefix/baz",
 | |
| 			"store",
 | |
| 			"micro",
 | |
| 			false,
 | |
| 		},
 | |
| 		{
 | |
| 			"/prefix/baz/foobar/registry",
 | |
| 			"/prefix/baz",
 | |
| 			"registry",
 | |
| 			"foobar",
 | |
| 			true,
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	for _, c := range testCases {
 | |
| 		domain, service, ok := getName(c.key, c.prefix)
 | |
| 		if ok != c.expect {
 | |
| 			t.Fatalf("Expected %t for %v got: %t", c.expect, c, ok)
 | |
| 		}
 | |
| 		if !ok {
 | |
| 			continue
 | |
| 		}
 | |
| 		if service != c.name {
 | |
| 			t.Fatalf("Expected service %s got %s", c.name, service)
 | |
| 		}
 | |
| 		if domain != c.domain {
 | |
| 			t.Fatalf("Expected domain %s got %s", c.domain, domain)
 | |
| 		}
 | |
| 	}
 | |
| }
 |