mirror of
				https://github.com/TeaOSLab/EdgeCommon.git
				synced 2025-11-04 13:10: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
							 | 
						||
| 
								 | 
							
										}))
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |