MCPcopy Create free account
hub / github.com/devaccuracy/ledgerforge / TestValidateLineageProvider

Function TestValidateLineageProvider

lineage_test.go:89–173  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

87}
88
89func TestValidateLineageProvider(t *testing.T) {
90 ctx := context.Background()
91
92 tests := []struct {
93 name string
94 provider string
95 sourceBalance *model.Balance
96 mockSetup func(*mocks.MockDataSource)
97 expectedResult string
98 expectError bool
99 }{
100 {
101 name: "Empty provider returns empty",
102 provider: "",
103 sourceBalance: nil,
104 mockSetup: func(m *mocks.MockDataSource) {},
105 expectedResult: "",
106 expectError: false,
107 },
108 {
109 name: "Nil source allows any provider",
110 provider: "stripe",
111 sourceBalance: nil,
112 mockSetup: func(m *mocks.MockDataSource) {},
113 expectedResult: "stripe",
114 expectError: false,
115 },
116 {
117 name: "Source without lineage tracking allows any provider",
118 provider: "stripe",
119 sourceBalance: &model.Balance{
120 BalanceID: "bln_source",
121 TrackFundLineage: false,
122 },
123 mockSetup: func(m *mocks.MockDataSource) {},
124 expectedResult: "stripe",
125 expectError: false,
126 },
127 {
128 name: "Valid provider on source is accepted",
129 provider: "stripe",
130 sourceBalance: &model.Balance{
131 BalanceID: "bln_source",
132 TrackFundLineage: true,
133 },
134 mockSetup: func(m *mocks.MockDataSource) {
135 m.On("GetLineageMappingByProvider", mock.Anything, "bln_source", "stripe").
136 Return(&model.LineageMapping{Provider: "stripe"}, nil)
137 },
138 expectedResult: "stripe",
139 expectError: false,
140 },
141 {
142 name: "Invalid provider on source is ignored",
143 provider: "invalid_provider",
144 sourceBalance: &model.Balance{
145 BalanceID: "bln_source",
146 TrackFundLineage: true,

Callers

nothing calls this directly

Calls 2

ErrorMethod · 0.45

Tested by

no test coverage detected