mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			116 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package assertions
 | 
						|
 | 
						|
import "fmt"
 | 
						|
 | 
						|
// ShouldPanic receives a void, niladic function and expects to recover a panic.
 | 
						|
func ShouldPanic(actual interface{}, expected ...interface{}) (message string) {
 | 
						|
	if fail := need(0, expected); fail != success {
 | 
						|
		return fail
 | 
						|
	}
 | 
						|
 | 
						|
	action, _ := actual.(func())
 | 
						|
 | 
						|
	if action == nil {
 | 
						|
		message = shouldUseVoidNiladicFunction
 | 
						|
		return
 | 
						|
	}
 | 
						|
 | 
						|
	defer func() {
 | 
						|
		recovered := recover()
 | 
						|
		if recovered == nil {
 | 
						|
			message = shouldHavePanicked
 | 
						|
		} else {
 | 
						|
			message = success
 | 
						|
		}
 | 
						|
	}()
 | 
						|
	action()
 | 
						|
 | 
						|
	return
 | 
						|
}
 | 
						|
 | 
						|
// ShouldNotPanic receives a void, niladic function and expects to execute the function without any panic.
 | 
						|
func ShouldNotPanic(actual interface{}, expected ...interface{}) (message string) {
 | 
						|
	if fail := need(0, expected); fail != success {
 | 
						|
		return fail
 | 
						|
	}
 | 
						|
 | 
						|
	action, _ := actual.(func())
 | 
						|
 | 
						|
	if action == nil {
 | 
						|
		message = shouldUseVoidNiladicFunction
 | 
						|
		return
 | 
						|
	}
 | 
						|
 | 
						|
	defer func() {
 | 
						|
		recovered := recover()
 | 
						|
		if recovered != nil {
 | 
						|
			message = fmt.Sprintf(shouldNotHavePanicked, recovered)
 | 
						|
		} else {
 | 
						|
			message = success
 | 
						|
		}
 | 
						|
	}()
 | 
						|
	action()
 | 
						|
 | 
						|
	return
 | 
						|
}
 | 
						|
 | 
						|
// ShouldPanicWith receives a void, niladic function and expects to recover a panic with the second argument as the content.
 | 
						|
func ShouldPanicWith(actual interface{}, expected ...interface{}) (message string) {
 | 
						|
	if fail := need(1, expected); fail != success {
 | 
						|
		return fail
 | 
						|
	}
 | 
						|
 | 
						|
	action, _ := actual.(func())
 | 
						|
 | 
						|
	if action == nil {
 | 
						|
		message = shouldUseVoidNiladicFunction
 | 
						|
		return
 | 
						|
	}
 | 
						|
 | 
						|
	defer func() {
 | 
						|
		recovered := recover()
 | 
						|
		if recovered == nil {
 | 
						|
			message = shouldHavePanicked
 | 
						|
		} else {
 | 
						|
			if equal := ShouldEqual(recovered, expected[0]); equal != success {
 | 
						|
				message = serializer.serialize(expected[0], recovered, fmt.Sprintf(shouldHavePanickedWith, expected[0], recovered))
 | 
						|
			} else {
 | 
						|
				message = success
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}()
 | 
						|
	action()
 | 
						|
 | 
						|
	return
 | 
						|
}
 | 
						|
 | 
						|
// ShouldNotPanicWith receives a void, niladic function and expects to recover a panic whose content differs from the second argument.
 | 
						|
func ShouldNotPanicWith(actual interface{}, expected ...interface{}) (message string) {
 | 
						|
	if fail := need(1, expected); fail != success {
 | 
						|
		return fail
 | 
						|
	}
 | 
						|
 | 
						|
	action, _ := actual.(func())
 | 
						|
 | 
						|
	if action == nil {
 | 
						|
		message = shouldUseVoidNiladicFunction
 | 
						|
		return
 | 
						|
	}
 | 
						|
 | 
						|
	defer func() {
 | 
						|
		recovered := recover()
 | 
						|
		if recovered == nil {
 | 
						|
			message = success
 | 
						|
		} else {
 | 
						|
			if equal := ShouldEqual(recovered, expected[0]); equal == success {
 | 
						|
				message = fmt.Sprintf(shouldNotHavePanickedWith, expected[0])
 | 
						|
			} else {
 | 
						|
				message = success
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}()
 | 
						|
	action()
 | 
						|
 | 
						|
	return
 | 
						|
}
 |