MCPcopy Create free account
hub / github.com/goadesign/goa / TestResolvePattern

Function TestResolvePattern

http/mux_test.go:253–336  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

251}
252
253func TestResolvePattern(t *testing.T) {
254 cases := []struct {
255 Name string
256 Patterns []string
257 URL string
258 Expected string
259 }{
260 {
261 Name: "simple",
262 Patterns: []string{"/users/{id}"},
263 URL: "/users/123",
264 Expected: "/users/{id}",
265 },
266 {
267 Name: "multiple",
268 Patterns: []string{"/users/{id}/posts/{post_id}"},
269 URL: "/users/123/posts/456",
270 Expected: "/users/{id}/posts/{post_id}",
271 },
272 {
273 Name: "two patterns",
274 Patterns: []string{"/users/{id}/posts/{post_id}", "/users/{id}/posts/{post_id}/comments/{comment_id}"},
275 URL: "/users/123/posts/456",
276 Expected: "/users/{id}/posts/{post_id}",
277 },
278 {
279 Name: "two patterns deep",
280 Patterns: []string{"/users/{id}/posts/{post_id}", "/users/{id}/posts/{post_id}/comments/{comment_id}"},
281 URL: "/users/123/posts/456/comments/789",
282 Expected: "/users/{id}/posts/{post_id}/comments/{comment_id}",
283 },
284 {
285 Name: "wildcard",
286 Patterns: []string{"/users/{id}/posts/{*post_id}"},
287 URL: "/users/123/posts/456/789",
288 Expected: "/users/{id}/posts/{*post_id}",
289 },
290 {
291 Name: "two wildcards",
292 Patterns: []string{"/users/{id}/posts/{*post_id}", "/users/{id}/posts/{post_id}/comments/{*comment_id}"},
293 URL: "/users/123/posts/456/789",
294 Expected: "/users/{id}/posts/{*post_id}",
295 },
296 {
297 Name: "two wildcards deep",
298 Patterns: []string{"/users/{id}/posts/{*post_id}", "/users/{id}/posts/{post_id}/comments/{*comment_id}"},
299 URL: "/users/123/posts/456/comments/abc",
300 Expected: "/users/{id}/posts/{post_id}/comments/{*comment_id}",
301 },
302 {
303 Name: "no var",
304 Patterns: []string{"/users"},
305 URL: "/users",
306 Expected: "/users",
307 },
308 }
309
310 for _, c := range cases {

Callers

nothing calls this directly

Calls 5

ServeHTTPMethod · 0.95
HandleMethod · 0.95
NewMuxerFunction · 0.85
ResolvePatternMethod · 0.65
RunMethod · 0.45

Tested by

no test coverage detected