Home / Function/ TestEngineHandleContextPreventsMiddlewareReEntry() — gin Function Reference

TestEngineHandleContextPreventsMiddlewareReEntry() — gin Function Reference

Architecture documentation for the TestEngineHandleContextPreventsMiddlewareReEntry() function in gin_test.go from the gin codebase.

Entity Profile

Dependency Diagram

graph TD
  a3b58137_df33_e54d_9e24_6d6bd6e335aa["TestEngineHandleContextPreventsMiddlewareReEntry()"]
  5d6e7276_feeb_b8e2_30e8_0ae0827740a5["gin_test.go"]
  a3b58137_df33_e54d_9e24_6d6bd6e335aa -->|defined in| 5d6e7276_feeb_b8e2_30e8_0ae0827740a5
  style a3b58137_df33_e54d_9e24_6d6bd6e335aa fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

gin_test.go lines 708–744

func TestEngineHandleContextPreventsMiddlewareReEntry(t *testing.T) {
	// given
	var handlerCounterV1, handlerCounterV2, middlewareCounterV1 int64

	r := New()
	v1 := r.Group("/v1")
	{
		v1.Use(func(c *Context) {
			atomic.AddInt64(&middlewareCounterV1, 1)
		})
		v1.GET("/test", func(c *Context) {
			atomic.AddInt64(&handlerCounterV1, 1)
			c.Status(http.StatusOK)
		})
	}

	v2 := r.Group("/v2")
	{
		v2.GET("/test", func(c *Context) {
			c.Request.URL.Path = "/v1/test"
			r.HandleContext(c)
		}, func(c *Context) {
			atomic.AddInt64(&handlerCounterV2, 1)
		})
	}

	// when
	responseV1 := PerformRequest(r, "GET", "/v1/test")
	responseV2 := PerformRequest(r, "GET", "/v2/test")

	// then
	assert.Equal(t, 200, responseV1.Code)
	assert.Equal(t, 200, responseV2.Code)
	assert.Equal(t, int64(2), handlerCounterV1)
	assert.Equal(t, int64(2), middlewareCounterV1)
	assert.Equal(t, int64(1), handlerCounterV2)
}

Domain

Subdomains

Defined In

Frequently Asked Questions

What does TestEngineHandleContextPreventsMiddlewareReEntry() do?
TestEngineHandleContextPreventsMiddlewareReEntry() is a function in the gin codebase, defined in gin_test.go.
Where is TestEngineHandleContextPreventsMiddlewareReEntry() defined?
TestEngineHandleContextPreventsMiddlewareReEntry() is defined in gin_test.go at line 708.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free