func (p *Pact) VerifyMessageProviderRaw(request VerifyMessageRequest) (types.ProviderVerifierResponse, error) {
	p.Setup(false)
	response := types.ProviderVerifierResponse{}

	// Starts the message wrapper API with hooks back to the message handlers
	// This maps the 'description' field of a message pact, to a function handler
	// that will implement the message producer. This function must return an object and optionally
	// and error. The object will be marshalled to JSON for comparison.
	mux := http.NewServeMux()

	port, err := utils.GetFreePort()
	if err != nil {
		return response, fmt.Errorf("unable to allocate a port for verification: %v", err)
	}

	// Construct verifier request
	verificationRequest := types.VerifyRequest{
		ProviderBaseURL:            fmt.Sprintf("http://localhost:%d", port),
		PactURLs:                   request.PactURLs,
		BrokerURL:                  request.BrokerURL,
		Tags:                       request.Tags,
		BrokerUsername:             request.BrokerUsername,
		BrokerPassword:             request.BrokerPassword,
		BrokerToken:                request.BrokerToken,
		PublishVerificationResults: request.PublishVerificationResults,
		ProviderVersion:            request.ProviderVersion,
		Provider:                   p.Provider,
	}

	mux.HandleFunc("/", messageVerificationHandler(request.MessageHandlers, request.StateHandlers))

	ln, err := net.Listen("tcp", fmt.Sprintf(":%d", port))
	if err != nil {
		log.Fatal(err)
	}
	defer ln.Close()

	log.Printf("[DEBUG] API handler starting: port %d (%s)", port, ln.Addr())
	go http.Serve(ln, mux)

	portErr := waitForPort(port, "tcp", "localhost", p.ClientTimeout,
		fmt.Sprintf(`Timed out waiting for pact proxy on port %d - check for errors`, port))

	if portErr != nil {
		log.Fatal("Error:", err)
		return response, portErr
	}

	log.Println("[DEBUG] pact provider verification")
	return p.pactClient.VerifyProvider(verificationRequest)
}
func (p *Pact) VerifyMessageProviderRaw(request VerifyMessageRequest) (types.ProviderVerifierResponse, error) {
	p.Setup(false)
	response := types.ProviderVerifierResponse{}

	
	
	
	
	mux := http.NewServeMux()

	port, err := utils.GetFreePort()
	if err != nil {
		return response, fmt.Errorf("unable to allocate a port for verification: %v", err)
	}

	
	verificationRequest := types.VerifyRequest{
		ProviderBaseURL:            fmt.Sprintf("http:
		PactURLs:                   request.PactURLs,
		BrokerURL:                  request.BrokerURL,
		Tags:                       request.Tags,
		BrokerUsername:             request.BrokerUsername,
		BrokerPassword:             request.BrokerPassword,
		BrokerToken:                request.BrokerToken,
		PublishVerificationResults: request.PublishVerificationResults,
		ProviderVersion:            request.ProviderVersion,
		Provider:                   p.Provider,
	}

	mux.HandleFunc("/", messageVerificationHandler(request.MessageHandlers, request.StateHandlers))

	ln, err := net.Listen("tcp", fmt.Sprintf(":%d", port))
	if err != nil {
		log.Fatal(err)
	}
	defer ln.Close()

	log.Printf("[DEBUG] API handler starting: port %d (%s)", port, ln.Addr())
	go http.Serve(ln, mux)

	portErr := waitForPort(port, "tcp", "localhost", p.ClientTimeout,
		fmt.Sprintf(`Timed out waiting for pact proxy on port %d - check for errors`, port))

	if portErr != nil {
		log.Fatal("Error:", err)
		return response, portErr
	}

	log.Println("[DEBUG] pact provider verification")
	return p.pactClient.VerifyProvider(verificationRequest)
}
func ( p * Pact ) VerifyMessageProviderRaw ( request VerifyMessageRequest ) ( types . ProviderVerifierResponse , error ) { p . Setup ( false ) response := types . ProviderVerifierResponse { } // Starts the message wrapper API with hooks back to the message handlers // This maps the 'description' field of a message pact, to a function handler // that will implement the message producer. This function must return an object and optionally // and error. The object will be marshalled to JSON for comparison. mux := http . NewServeMux ( ) port , err := utils . GetFreePort ( ) if err != nil { return response , fmt . Errorf ( " " , err ) } // Construct verifier request verificationRequest := types . VerifyRequest { ProviderBaseURL : fmt . Sprintf ( " " , port ) , PactURLs : request . PactURLs , BrokerURL : request . BrokerURL , Tags : request . Tags , BrokerUsername : request . BrokerUsername , BrokerPassword : request . BrokerPassword , BrokerToken : request . BrokerToken , PublishVerificationResults : request . PublishVerificationResults , ProviderVersion : request . ProviderVersion , Provider : p . Provider , } mux . HandleFunc ( " " , messageVerificationHandler ( request . MessageHandlers , request . StateHandlers ) ) ln , err := net . Listen ( " " , fmt . Sprintf ( " " , port ) ) if err != nil { log . Fatal ( err ) } defer ln . Close ( ) log . Printf ( " " , port , ln . Addr ( ) ) go http . Serve ( ln , mux ) portErr := waitForPort ( port , " " , " " , p . ClientTimeout , fmt . Sprintf ( `Timed out waiting for pact proxy on port %d - check for errors` , port ) ) if portErr != nil { log . Fatal ( " " , err ) return response , portErr } log . Println ( " " ) return p . pactClient . VerifyProvider ( verificationRequest ) }
// VerifyMessageProviderRaw runs provider message verification.
//
// A Message Producer is analagous to Consumer in the HTTP Interaction model.
// It is the initiator of an interaction, and expects something on the other end
// of the interaction to respond - just in this case, not immediately.
VerifyMessageProviderRaw runs provider message verification . A Message Producer is analagous to Consumer in the HTTP Interaction model . It is the initiator of an interaction and expects something on the other end of the interaction to respond - just in this case not immediately .