Skip to content

Commit d756306

Browse files
Copilottg123
andcommitted
Add dedicated unit tests for LoadFromPemText method
- Add LoadFromPemTextWithMultiCert test for multiple certificates - Add LoadFromPemTextWithSingleCert test for single certificate - Tests follow the same pattern as existing LoadPemWithMultiCert test Co-authored-by: tg123 <170430+tg123@users.noreply.github.com>
1 parent a86c2e2 commit d756306

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

tests/KubernetesClient.Tests/CertUtilsTests.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,49 @@ public void LoadPemWithMultiCert()
9898
Assert.True(certCollection[0].RawData.SequenceEqual(intermediateCert.RawData));
9999
Assert.True(certCollection[1].RawData.SequenceEqual(rootCert.RawData));
100100
}
101+
102+
/// <summary>
103+
/// Checks that multiple certificates can be loaded from PEM text
104+
/// </summary>
105+
[Fact]
106+
public void LoadFromPemTextWithMultiCert()
107+
{
108+
// Read the PEM text from the ca-bundle file
109+
var pemText = System.IO.File.ReadAllText("assets/ca-bundle.crt");
110+
var certCollection = CertUtils.LoadFromPemText(pemText);
111+
112+
#if NET9_0_OR_GREATER
113+
using var intermediateCert = X509CertificateLoader.LoadCertificateFromFile("assets/ca-bundle-intermediate.crt");
114+
using var rootCert = X509CertificateLoader.LoadCertificateFromFile("assets/ca-bundle-root.crt");
115+
#else
116+
using var intermediateCert = new X509Certificate2("assets/ca-bundle-intermediate.crt");
117+
using var rootCert = new X509Certificate2("assets/ca-bundle-root.crt");
118+
#endif
119+
120+
Assert.Equal(2, certCollection.Count);
121+
122+
Assert.True(certCollection[0].RawData.SequenceEqual(intermediateCert.RawData));
123+
Assert.True(certCollection[1].RawData.SequenceEqual(rootCert.RawData));
124+
}
125+
126+
/// <summary>
127+
/// Checks that a single certificate can be loaded from PEM text
128+
/// </summary>
129+
[Fact]
130+
public void LoadFromPemTextWithSingleCert()
131+
{
132+
// Read a single certificate PEM text
133+
var pemText = System.IO.File.ReadAllText("assets/ca-bundle-root.crt");
134+
var certCollection = CertUtils.LoadFromPemText(pemText);
135+
136+
#if NET9_0_OR_GREATER
137+
using var rootCert = X509CertificateLoader.LoadCertificateFromFile("assets/ca-bundle-root.crt");
138+
#else
139+
using var rootCert = new X509Certificate2("assets/ca-bundle-root.crt");
140+
#endif
141+
142+
Assert.Single(certCollection);
143+
Assert.True(certCollection[0].RawData.SequenceEqual(rootCert.RawData));
144+
}
101145
}
102146
}

0 commit comments

Comments
 (0)