gitee.com/liuxuezhan/go-micro-v1.18.0@v1.0.0/api/resolver/micro/route_test.go (about)

     1  package micro
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestApiRoute(t *testing.T) {
     8  	testData := []struct {
     9  		path    string
    10  		service string
    11  		method  string
    12  	}{
    13  		{
    14  			"/foo/bar",
    15  			"foo",
    16  			"Foo.Bar",
    17  		},
    18  		{
    19  			"/foo/foo/bar",
    20  			"foo",
    21  			"Foo.Bar",
    22  		},
    23  		{
    24  			"/foo/bar/baz",
    25  			"foo",
    26  			"Bar.Baz",
    27  		},
    28  		{
    29  			"/foo/bar/baz-xyz",
    30  			"foo",
    31  			"Bar.BazXyz",
    32  		},
    33  		{
    34  			"/foo/bar/baz/cat",
    35  			"foo.bar",
    36  			"Baz.Cat",
    37  		},
    38  		{
    39  			"/foo/bar/baz/cat/car",
    40  			"foo.bar.baz",
    41  			"Cat.Car",
    42  		},
    43  		{
    44  			"/foo/fooBar/bazCat",
    45  			"foo",
    46  			"FooBar.BazCat",
    47  		},
    48  		{
    49  			"/v1/foo/bar",
    50  			"v1.foo",
    51  			"Foo.Bar",
    52  		},
    53  		{
    54  			"/v1/foo/bar/baz",
    55  			"v1.foo",
    56  			"Bar.Baz",
    57  		},
    58  		{
    59  			"/v1/foo/bar/baz/cat",
    60  			"v1.foo.bar",
    61  			"Baz.Cat",
    62  		},
    63  	}
    64  
    65  	for _, d := range testData {
    66  		s, m := apiRoute(d.path)
    67  		if d.service != s {
    68  			t.Fatalf("Expected service: %s for path: %s got: %s %s", d.service, d.path, s, m)
    69  		}
    70  		if d.method != m {
    71  			t.Fatalf("Expected service: %s for path: %s got: %s", d.method, d.path, m)
    72  		}
    73  	}
    74  }
    75  
    76  func TestProxyRoute(t *testing.T) {
    77  	testData := []struct {
    78  		path    string
    79  		service string
    80  	}{
    81  		// no namespace
    82  		{
    83  			"/f",
    84  			"f",
    85  		},
    86  		{
    87  			"/f",
    88  			"f",
    89  		},
    90  		{
    91  			"/f-b",
    92  			"f-b",
    93  		},
    94  		{
    95  			"/foo/bar",
    96  			"foo",
    97  		},
    98  		{
    99  			"/foo-bar",
   100  			"foo-bar",
   101  		},
   102  		{
   103  			"/foo-bar-baz",
   104  			"foo-bar-baz",
   105  		},
   106  		{
   107  			"/foo/bar/bar",
   108  			"foo",
   109  		},
   110  		{
   111  			"/v1/foo/bar",
   112  			"v1.foo",
   113  		},
   114  		{
   115  			"/v1/foo/bar/baz",
   116  			"v1.foo",
   117  		},
   118  		{
   119  			"/v1/foo/bar/baz/cat",
   120  			"v1.foo",
   121  		},
   122  	}
   123  
   124  	for _, d := range testData {
   125  		s := proxyRoute(d.path)
   126  		if d.service != s {
   127  			t.Fatalf("Expected service: %s for path: %s got: %s", d.service, d.path, s)
   128  		}
   129  	}
   130  }