mirror of
				https://github.com/TeaOSLab/EdgeCommon.git
				synced 2025-11-04 05:00:24 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			142 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package shared
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/iwind/TeaGo/assert"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func TestHTTPRequestCondGroup_MatchRequest(t *testing.T) {
 | 
						|
	a := assert.NewAssertion(t)
 | 
						|
 | 
						|
	{
 | 
						|
		group := &HTTPRequestCondGroup{}
 | 
						|
		group.Connector = "or"
 | 
						|
		group.IsOn = false
 | 
						|
		err := group.Init()
 | 
						|
		if err != nil {
 | 
						|
			t.Fatal(err)
 | 
						|
		}
 | 
						|
		a.IsTrue(group.MatchRequest(func(source string) string {
 | 
						|
			return source
 | 
						|
		}))
 | 
						|
		a.IsTrue(group.MatchResponse(func(source string) string {
 | 
						|
			return source
 | 
						|
		}))
 | 
						|
	}
 | 
						|
 | 
						|
	{
 | 
						|
		group := &HTTPRequestCondGroup{}
 | 
						|
		group.IsOn = true
 | 
						|
		err := group.Init()
 | 
						|
		if err != nil {
 | 
						|
			t.Fatal(err)
 | 
						|
		}
 | 
						|
		a.IsTrue(group.MatchRequest(func(source string) string {
 | 
						|
			return source
 | 
						|
		}))
 | 
						|
		a.IsTrue(group.MatchResponse(func(source string) string {
 | 
						|
			return source
 | 
						|
		}))
 | 
						|
	}
 | 
						|
 | 
						|
	{
 | 
						|
		group := &HTTPRequestCondGroup{}
 | 
						|
		group.IsOn = true
 | 
						|
		group.Connector = "or"
 | 
						|
		group.Conds = []*HTTPRequestCond{
 | 
						|
			{
 | 
						|
				IsRequest: true,
 | 
						|
				Param:     "456",
 | 
						|
				Operator:  "gt",
 | 
						|
				Value:     "123",
 | 
						|
			},
 | 
						|
			{
 | 
						|
				IsRequest: false,
 | 
						|
				Param:     "123",
 | 
						|
				Operator:  "gt",
 | 
						|
				Value:     "456",
 | 
						|
			},
 | 
						|
		}
 | 
						|
		err := group.Init()
 | 
						|
		if err != nil {
 | 
						|
			t.Fatal(err)
 | 
						|
		}
 | 
						|
		a.IsTrue(group.MatchRequest(func(source string) string {
 | 
						|
			return source
 | 
						|
		}))
 | 
						|
		a.IsFalse(group.MatchResponse(func(source string) string {
 | 
						|
			return source
 | 
						|
		}))
 | 
						|
	}
 | 
						|
	{
 | 
						|
		group := &HTTPRequestCondGroup{}
 | 
						|
		group.IsOn = true
 | 
						|
		group.Connector = "or"
 | 
						|
		group.Conds = []*HTTPRequestCond{
 | 
						|
			{
 | 
						|
				IsRequest: true,
 | 
						|
				Param:     "456",
 | 
						|
				Operator:  "gt",
 | 
						|
				Value:     "1234",
 | 
						|
			},
 | 
						|
			{
 | 
						|
				IsRequest: true,
 | 
						|
				Param:     "456",
 | 
						|
				Operator:  "gt",
 | 
						|
				Value:     "123",
 | 
						|
			},
 | 
						|
			{
 | 
						|
				IsRequest: false,
 | 
						|
				Param:     "123",
 | 
						|
				Operator:  "gt",
 | 
						|
				Value:     "456",
 | 
						|
			},
 | 
						|
		}
 | 
						|
		err := group.Init()
 | 
						|
		if err != nil {
 | 
						|
			t.Fatal(err)
 | 
						|
		}
 | 
						|
		a.IsTrue(group.MatchRequest(func(source string) string {
 | 
						|
			return source
 | 
						|
		}))
 | 
						|
		a.IsFalse(group.MatchResponse(func(source string) string {
 | 
						|
			return source
 | 
						|
		}))
 | 
						|
	}
 | 
						|
	{
 | 
						|
		group := &HTTPRequestCondGroup{}
 | 
						|
		group.IsOn = true
 | 
						|
		group.Connector = "and"
 | 
						|
		group.Conds = []*HTTPRequestCond{
 | 
						|
			{
 | 
						|
				IsRequest: true,
 | 
						|
				Param:     "456",
 | 
						|
				Operator:  "gt",
 | 
						|
				Value:     "123",
 | 
						|
			},
 | 
						|
			{
 | 
						|
				IsRequest: true,
 | 
						|
				Param:     "456",
 | 
						|
				Operator:  "gt",
 | 
						|
				Value:     "1234",
 | 
						|
			},
 | 
						|
			{
 | 
						|
				IsRequest: false,
 | 
						|
				Param:     "123",
 | 
						|
				Operator:  "gt",
 | 
						|
				Value:     "456",
 | 
						|
			},
 | 
						|
		}
 | 
						|
		err := group.Init()
 | 
						|
		if err != nil {
 | 
						|
			t.Fatal(err)
 | 
						|
		}
 | 
						|
		a.IsFalse(group.MatchRequest(func(source string) string {
 | 
						|
			return source
 | 
						|
		}))
 | 
						|
		a.IsFalse(group.MatchResponse(func(source string) string {
 | 
						|
			return source
 | 
						|
		}))
 | 
						|
	}
 | 
						|
}
 |