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 }