package testutil

import (
	"testing"
)

// Requirement is the interface for test requirements.
type Requirement interface {
	Verify(t *testing.T)
}

// Require should be called at the beginning of a test to ensure that all
// requirements are met before running the test.
// If any requirement is not met, the test will be skipped.
func Require(t *testing.T, requirements ...Requirement) {
	for _, r := range requirements {
		r.Verify(t)
	}
}