66 lines
		
	
	
		
			964 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			964 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package options
 | |
| 
 | |
| import "testing"
 | |
| 
 | |
| func TestHooks_Append(t *testing.T) {
 | |
| 	fn1 := func() {}
 | |
| 	fn2 := func() {}
 | |
| 	hs := &Hooks{}
 | |
| 	hs.Append(fn1, fn2)
 | |
| 	if len(*hs) != 2 {
 | |
| 		t.Fatalf("unexpected Append error")
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestHooks_Replace(t *testing.T) {
 | |
| 	fn1 := func() {}
 | |
| 	fn2 := func() {}
 | |
| 	hs := &Hooks{}
 | |
| 	hs.Append(fn1, fn2, fn1)
 | |
| 	if len(*hs) != 3 {
 | |
| 		t.Fatalf("unexpected Append error")
 | |
| 	}
 | |
| 	hs.Replace(fn1, fn2)
 | |
| 	if len(*hs) != 2 {
 | |
| 		t.Fatalf("unexpected Replace error")
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestHooks_EachNext(t *testing.T) {
 | |
| 	n := 5
 | |
| 	fn1 := func() {
 | |
| 		n *= 2
 | |
| 	}
 | |
| 	fn2 := func() {
 | |
| 		n -= 10
 | |
| 	}
 | |
| 	hs := &Hooks{}
 | |
| 	hs.Append(fn1, fn2)
 | |
| 
 | |
| 	hs.EachNext(func(h Hook) {
 | |
| 		h.(func())()
 | |
| 	})
 | |
| 	if n != 0 {
 | |
| 		t.Fatalf("unexpected EachNext")
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestHooks_EachPrev(t *testing.T) {
 | |
| 	n := 5
 | |
| 	fn1 := func() {
 | |
| 		n *= 2
 | |
| 	}
 | |
| 	fn2 := func() {
 | |
| 		n -= 10
 | |
| 	}
 | |
| 	hs := &Hooks{}
 | |
| 	hs.Append(fn2, fn1)
 | |
| 
 | |
| 	hs.EachPrev(func(h Hook) {
 | |
| 		h.(func())()
 | |
| 	})
 | |
| 	if n != 0 {
 | |
| 		t.Fatalf("unexpected EachPrev")
 | |
| 	}
 | |
| }
 |