github.com/dcarley/cf-cli@v6.24.1-0.20170220111324-4225ff346898+incompatible/util/testhelpers/matchers/all_requests_called_matcher.go (about)

     1  package matchers
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"code.cloudfoundry.org/cli/util/testhelpers/net"
     7  	"github.com/onsi/gomega"
     8  )
     9  
    10  func HaveAllRequestsCalled() gomega.OmegaMatcher {
    11  	return &allRequestsCalledMatcher{}
    12  }
    13  
    14  type allRequestsCalledMatcher struct {
    15  	failureMessage string
    16  }
    17  
    18  func (matcher *allRequestsCalledMatcher) Match(actual interface{}) (bool, error) {
    19  	testHandler, ok := actual.(*net.TestHandler)
    20  	if !ok {
    21  		return false, fmt.Errorf("Expected a test handler, got %T", actual)
    22  	}
    23  
    24  	if testHandler.AllRequestsCalled() {
    25  		matcher.failureMessage = "Expected all requests to not be called, but they were all called"
    26  		return true, nil
    27  	}
    28  
    29  	message := fmt.Sprint("Failed to call requests:\n")
    30  	for i := testHandler.CallCount; i < len(testHandler.Requests); i++ {
    31  		message += fmt.Sprintf("%#v\n", testHandler.Requests[i])
    32  	}
    33  	message += "\n"
    34  	matcher.failureMessage = message
    35  	return false, nil
    36  }
    37  
    38  func (matcher *allRequestsCalledMatcher) FailureMessage(actual interface{}) string {
    39  	return matcher.failureMessage
    40  }
    41  
    42  func (matcher *allRequestsCalledMatcher) NegatedFailureMessage(actual interface{}) string {
    43  	return matcher.failureMessage
    44  }