github.com/prebid/prebid-server@v0.275.0/experiment/adscert/signer_test.go (about)

     1  package adscert
     2  
     3  import (
     4  	"errors"
     5  	"github.com/IABTechLab/adscert/pkg/adscert/api"
     6  	"github.com/prebid/prebid-server/config"
     7  	"github.com/stretchr/testify/assert"
     8  	"testing"
     9  )
    10  
    11  func TestNilSigner(t *testing.T) {
    12  	config := config.ExperimentAdsCert{Mode: "off", InProcess: config.AdsCertInProcess{Origin: ""}, Remote: config.AdsCertRemote{Url: ""}}
    13  	signer, err := NewAdCertsSigner(config)
    14  	assert.NoError(t, err, "error should not be returned if not inprocess nor remote signer defined, NilSigner should be returned instead")
    15  	message, err := signer.Sign("test.com", nil)
    16  	assert.NoError(t, err, "NilSigner should not return an error")
    17  	assert.Equal(t, "", message, "incorrect message returned NilSigner")
    18  }
    19  
    20  func TestNilSignerForAdsCertDisabled(t *testing.T) {
    21  	config := config.ExperimentAdsCert{Mode: "off", InProcess: config.AdsCertInProcess{Origin: ""}, Remote: config.AdsCertRemote{Url: ""}}
    22  	signer, err := NewAdCertsSigner(config)
    23  	assert.NoError(t, err, "error should not be returned if AdsCerts feature is disabled")
    24  	message, err := signer.Sign("test.com", nil)
    25  	assert.NoError(t, err, "NilSigner should not return an error")
    26  	assert.Equal(t, "", message, "incorrect message returned NilSigner")
    27  }
    28  
    29  type MockLocalAuthenticatedConnectionsSignatory struct {
    30  	returnError       bool
    31  	operationStatusOk bool
    32  }
    33  
    34  func (ips *MockLocalAuthenticatedConnectionsSignatory) SignAuthenticatedConnection(request *api.AuthenticatedConnectionSignatureRequest) (*api.AuthenticatedConnectionSignatureResponse, error) {
    35  	if ips.returnError {
    36  		return nil, errors.New("Test error")
    37  	}
    38  	response := &api.AuthenticatedConnectionSignatureResponse{
    39  		RequestInfo: &api.RequestInfo{
    40  			SignatureInfo: []*api.SignatureInfo{
    41  				{SignatureMessage: "Success"},
    42  			},
    43  		},
    44  	}
    45  	if ips.operationStatusOk {
    46  		response.SignatureOperationStatus = api.SignatureOperationStatus_SIGNATURE_OPERATION_STATUS_OK
    47  	} else {
    48  		response.SignatureOperationStatus = api.SignatureOperationStatus_SIGNATURE_OPERATION_STATUS_UNDEFINED
    49  	}
    50  	return response, nil
    51  }
    52  func (ips *MockLocalAuthenticatedConnectionsSignatory) VerifyAuthenticatedConnection(request *api.AuthenticatedConnectionVerificationRequest) (*api.AuthenticatedConnectionVerificationResponse, error) {
    53  	return nil, nil
    54  }