github.com/hyperledger/aries-framework-go@v0.3.2/pkg/client/messagepickup/client_test.go (about)

     1  /*
     2  Copyright Scoir Inc. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package messagepickup
     8  
     9  import (
    10  	"errors"
    11  	"fmt"
    12  	"testing"
    13  
    14  	"github.com/stretchr/testify/require"
    15  
    16  	mockpickup "github.com/hyperledger/aries-framework-go/pkg/mock/didcomm/protocol/messagepickup"
    17  	mockprovider "github.com/hyperledger/aries-framework-go/pkg/mock/provider"
    18  )
    19  
    20  func TestNew(t *testing.T) {
    21  	t.Run("test new client", func(t *testing.T) {
    22  		client, err := New(&mockprovider.Provider{
    23  			ServiceValue: &mockpickup.MockMessagePickupSvc{},
    24  		})
    25  		require.NoError(t, err)
    26  		require.NotNil(t, client)
    27  	})
    28  
    29  	t.Run("test error from get service from context", func(t *testing.T) {
    30  		_, err := New(&mockprovider.Provider{ServiceErr: fmt.Errorf("service error")})
    31  		require.Error(t, err)
    32  		require.Contains(t, err.Error(), "service error")
    33  	})
    34  
    35  	t.Run("test error from cast service", func(t *testing.T) {
    36  		_, err := New(&mockprovider.Provider{ServiceValue: nil})
    37  		require.Error(t, err)
    38  		require.Contains(t, err.Error(), "cast service to message pickup service failed")
    39  	})
    40  }
    41  
    42  func TestStatusRequest(t *testing.T) {
    43  	t.Run("status request - success", func(t *testing.T) {
    44  		client, err := New(&mockprovider.Provider{
    45  			ServiceValue: &mockpickup.MockMessagePickupSvc{},
    46  		})
    47  		require.NoError(t, err)
    48  
    49  		_, err = client.StatusRequest("connID")
    50  		require.NoError(t, err)
    51  	})
    52  
    53  	t.Run("status request - status request error", func(t *testing.T) {
    54  		client, err := New(&mockprovider.Provider{
    55  			ServiceValue: &mockpickup.MockMessagePickupSvc{
    56  				StatusRequestErr: errors.New("service error"),
    57  			},
    58  		})
    59  		require.NoError(t, err)
    60  
    61  		_, err = client.StatusRequest("connID")
    62  		require.Error(t, err)
    63  		require.Contains(t, err.Error(), "service error")
    64  	})
    65  }
    66  
    67  func TestBatchPickup(t *testing.T) {
    68  	t.Run("batch pickup - success", func(t *testing.T) {
    69  		client, err := New(&mockprovider.Provider{
    70  			ServiceValue: &mockpickup.MockMessagePickupSvc{},
    71  		})
    72  		require.NoError(t, err)
    73  
    74  		_, err = client.BatchPickup("connID", 1)
    75  		require.NoError(t, err)
    76  	})
    77  
    78  	t.Run("batch pickup - batch pick up error", func(t *testing.T) {
    79  		client, err := New(&mockprovider.Provider{
    80  			ServiceValue: &mockpickup.MockMessagePickupSvc{
    81  				BatchPickupErr: errors.New("service error"),
    82  			},
    83  		})
    84  		require.NoError(t, err)
    85  
    86  		_, err = client.BatchPickup("connID", 1)
    87  		require.Error(t, err)
    88  		require.Contains(t, err.Error(), "service error")
    89  	})
    90  }
    91  
    92  func TestNoop(t *testing.T) {
    93  	t.Run("noop - success", func(t *testing.T) {
    94  		client, err := New(&mockprovider.Provider{
    95  			ServiceValue: &mockpickup.MockMessagePickupSvc{},
    96  		})
    97  		require.NoError(t, err)
    98  
    99  		err = client.Noop("connID")
   100  		require.NoError(t, err)
   101  	})
   102  
   103  	t.Run("noop - service error", func(t *testing.T) {
   104  		client, err := New(&mockprovider.Provider{
   105  			ServiceValue: &mockpickup.MockMessagePickupSvc{
   106  				NoopErr: errors.New("service error"),
   107  			},
   108  		})
   109  		require.NoError(t, err)
   110  
   111  		err = client.Noop("connID")
   112  		require.Error(t, err)
   113  		require.Contains(t, err.Error(), "service error")
   114  	})
   115  }