Skip to content

Commit 2b098b9

Browse files
committed
refactor(Db2): Update WithAcceptLicenseAgreement(bool)
1 parent 5d5b0e0 commit 2b098b9

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

src/Testcontainers.Db2/Db2Builder.cs

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,6 @@ public sealed class Db2Builder : ContainerBuilder<Db2Builder, Db2Container, Db2C
1414

1515
public const string DefaultPassword = "db2inst1";
1616

17-
private const string AcceptLicenseAgreementEnvVar = "LICENSE";
18-
19-
private const string AcceptLicenseAgreement = "accept";
20-
21-
private const string DeclineLicenseAgreement = "decline";
22-
2317
/// <summary>
2418
/// Initializes a new instance of the <see cref="Db2Builder" /> class.
2519
/// </summary>
@@ -42,6 +36,15 @@ private Db2Builder(Db2Configuration resourceConfiguration)
4236
/// <inheritdoc />
4337
protected override Db2Configuration DockerResourceConfiguration { get; }
4438

39+
/// <inheritdoc />
40+
protected override string AcceptLicenseAgreementEnvVar { get; } = "LICENSE";
41+
42+
/// <inheritdoc />
43+
protected override string AcceptLicenseAgreement { get; } = "accept";
44+
45+
/// <inheritdoc />
46+
protected override string DeclineLicenseAgreement { get; } = "decline";
47+
4548
/// <summary>
4649
/// Accepts the license agreement.
4750
/// </summary>
@@ -50,7 +53,7 @@ private Db2Builder(Db2Configuration resourceConfiguration)
5053
/// </remarks>
5154
/// <param name="acceptLicenseAgreement">A boolean value indicating whether the Db2 license agreement is accepted.</param>
5255
/// <returns>A configured instance of <see cref="Db2Builder" />.</returns>
53-
public Db2Builder WithAcceptLicenseAgreement(bool acceptLicenseAgreement)
56+
public override Db2Builder WithAcceptLicenseAgreement(bool acceptLicenseAgreement)
5457
{
5558
var licenseAgreement = acceptLicenseAgreement ? AcceptLicenseAgreement : DeclineLicenseAgreement;
5659
return WithEnvironment(AcceptLicenseAgreementEnvVar, licenseAgreement);
@@ -94,6 +97,7 @@ public Db2Builder WithPassword(string password)
9497
public override Db2Container Build()
9598
{
9699
Validate();
100+
ValidateLicenseAgreement();
97101
return new Db2Container(DockerResourceConfiguration);
98102
}
99103

@@ -110,16 +114,8 @@ protected override Db2Builder Init() => base.Init()
110114
/// <inheritdoc />
111115
protected override void Validate()
112116
{
113-
const string message = "The image '{0}' requires you to accept a license agreement.";
114-
115117
base.Validate();
116118

117-
Predicate<Db2Configuration> licenseAgreementNotAccepted = value =>
118-
!value.Environments.TryGetValue(AcceptLicenseAgreementEnvVar, out var licenseAgreementValue) || !AcceptLicenseAgreement.Equals(licenseAgreementValue, StringComparison.Ordinal);
119-
120-
_ = Guard.Argument(DockerResourceConfiguration, nameof(DockerResourceConfiguration.Image))
121-
.ThrowIf(argument => licenseAgreementNotAccepted(argument.Value), argument => throw new ArgumentException(string.Format(message, DockerResourceConfiguration.Image.FullName), argument.Name));
122-
123119
_ = Guard.Argument(DockerResourceConfiguration.Username, nameof(DockerResourceConfiguration.Username))
124120
.NotNull()
125121
.NotEmpty();

0 commit comments

Comments
 (0)