Skip to content

Commit cd5f9de

Browse files
test: cover merchant contract enum mapping branches
Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
1 parent fb3d309 commit cd5f9de

2 files changed

Lines changed: 40 additions & 4 deletions

File tree

TransactionProcessorACL.Tests/General/ModelFactoryTests.cs

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,37 @@ public void ModelFactory_ConvertFrom_ContractResponses_IsConverted()
200200
Value = 1.23m
201201
}
202202
}
203+
},
204+
new Models.ContractProduct
205+
{
206+
DisplayText = "Display 2",
207+
Name = "Product 2",
208+
ProductId = Guid.NewGuid(),
209+
ProductReportingId = 5,
210+
Value = 23.45m,
211+
ProductType = Models.ProductType.MobileTopup,
212+
TransactionFees = new List<Models.ContractProductTransactionFee>
213+
{
214+
new Models.ContractProductTransactionFee
215+
{
216+
CalculationType = Models.CalculationType.Percentage,
217+
FeeType = Models.FeeType.ServiceProvider,
218+
Description = "Fee 2",
219+
TransactionFeeId = Guid.NewGuid(),
220+
TransactionFeeReportingId = 6,
221+
Value = 2.34m
222+
}
223+
}
224+
},
225+
new Models.ContractProduct
226+
{
227+
DisplayText = "Display 3",
228+
Name = "Product 3",
229+
ProductId = Guid.NewGuid(),
230+
ProductReportingId = 7,
231+
Value = 34.56m,
232+
ProductType = Models.ProductType.Voucher,
233+
TransactionFees = new List<Models.ContractProductTransactionFee>()
203234
}
204235
}
205236
}
@@ -216,7 +247,7 @@ public void ModelFactory_ConvertFrom_ContractResponses_IsConverted()
216247
dto[0].EstateReportingId.ShouldBe(2);
217248
dto[0].OperatorId.ShouldBe(operatorId);
218249
dto[0].OperatorName.ShouldBe("Operator 1");
219-
dto[0].Products.Count.ShouldBe(1);
250+
dto[0].Products.Count.ShouldBe(3);
220251
dto[0].Products[0].DisplayText.ShouldBe("Display");
221252
dto[0].Products[0].Name.ShouldBe("Product");
222253
dto[0].Products[0].ProductId.ShouldBe(productId);
@@ -230,6 +261,11 @@ public void ModelFactory_ConvertFrom_ContractResponses_IsConverted()
230261
dto[0].Products[0].TransactionFees[0].TransactionFeeId.ShouldBe(transactionFeeId);
231262
dto[0].Products[0].TransactionFees[0].TransactionFeeReportingId.ShouldBe(4);
232263
dto[0].Products[0].TransactionFees[0].Value.ShouldBe(1.23m);
264+
dto[0].Products[1].ProductType.ShouldBe(ProductType.MobileTopup);
265+
dto[0].Products[1].TransactionFees[0].CalculationType.ShouldBe(CalculationType.Percentage);
266+
dto[0].Products[1].TransactionFees[0].FeeType.ShouldBe(FeeType.ServiceProvider);
267+
dto[0].Products[2].ProductType.ShouldBe(ProductType.Voucher);
268+
dto[0].Products[2].TransactionFees.ShouldBeEmpty();
233269
}
234270

235271
[Fact]

TransactionProcessorACL/Factories/ModelFactory.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public List<ContractResponse> ConvertFrom(List<Models.ContractResponse> model)
116116

117117
foreach (ContractProduct contractModelProduct in contractModel.Products)
118118
{
119-
ContractProduct productResponse = new()
119+
ContractProduct contractProductResponse = new()
120120
{
121121
Value = contractModelProduct.Value,
122122
DisplayText = contractModelProduct.DisplayText,
@@ -135,7 +135,7 @@ public List<ContractResponse> ConvertFrom(List<Models.ContractResponse> model)
135135

136136
foreach (ContractProductTransactionFee contractProductTransactionFeeModel in contractModelProduct.TransactionFees)
137137
{
138-
productResponse.TransactionFees.Add(new DataTransferObjects.Responses.ContractProductTransactionFee
138+
contractProductResponse.TransactionFees.Add(new DataTransferObjects.Responses.ContractProductTransactionFee
139139
{
140140
Value = contractProductTransactionFeeModel.Value,
141141
Description = contractProductTransactionFeeModel.Description,
@@ -154,7 +154,7 @@ public List<ContractResponse> ConvertFrom(List<Models.ContractResponse> model)
154154
});
155155
}
156156

157-
contractResponse.Products.Add(productResponse);
157+
contractResponse.Products.Add(contractProductResponse);
158158
}
159159

160160
responses.Add(contractResponse);

0 commit comments

Comments
 (0)