mirror of
https://github.com/quamotion/dotnet-packaging.git
synced 2026-07-08 18:06:08 +00:00
Fix unit tests
This commit is contained in:
@@ -32,7 +32,7 @@ namespace Packaging.Targets.Tests.IO
|
||||
}
|
||||
|
||||
using (FileStream stream = File.Open(@"XZOutputStreamTests_CompressTextTest.txt.xz", FileMode.Open, FileAccess.Read, FileShare.None))
|
||||
using (XZOutputStream decompressedStream = new XZOutputStream(stream))
|
||||
using (XZInputStream decompressedStream = new XZInputStream(stream))
|
||||
{
|
||||
byte[] data = new byte[1024];
|
||||
int read = decompressedStream.Read(data, 0, data.Length);
|
||||
|
||||
@@ -240,8 +240,12 @@ namespace Packaging.Targets.Tests.Rpm
|
||||
{
|
||||
var originalPackage = RpmPackageReader.Read(stream);
|
||||
|
||||
using (var payloadStream = RpmPayloadReader.GetDecompressedPayloadStream(originalPackage))
|
||||
using (var compressedPayloadStream = RpmPayloadReader.GetDecompressedPayloadStream(originalPackage))
|
||||
using (var payloadStream = new MemoryStream())
|
||||
{
|
||||
compressedPayloadStream.CopyTo(payloadStream);
|
||||
payloadStream.Position = 0;
|
||||
|
||||
RpmPackageCreator creator = new RpmPackageCreator(new PlistFileAnalyzer());
|
||||
creator.CreatePackage(
|
||||
payloadStream,
|
||||
@@ -266,59 +270,13 @@ namespace Packaging.Targets.Tests.Rpm
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CreateDemoPackageTest()
|
||||
{
|
||||
// To install:
|
||||
// sudo rpm -i dotnet-demo.rpm
|
||||
// To uninstall:
|
||||
// sudo rpm -e dotnet-demo-0.1-0.1.x86_64
|
||||
var krgen = PgpSigner.GenerateKeyRingGenerator("dotnet", "dotnet");
|
||||
var secretKeyRing = krgen.GenerateSecretKeyRing();
|
||||
var privateKey = secretKeyRing.GetSecretKey().ExtractPrivateKey("dotnet".ToCharArray());
|
||||
var publicKey = secretKeyRing.GetPublicKey();
|
||||
|
||||
using (var targetStream = File.Open(@"dotnet-demo.rpm", FileMode.Create, FileAccess.ReadWrite, FileShare.None))
|
||||
using (var cpioStream = File.Open("dotnet-demo.cpio", FileMode.Create, FileAccess.ReadWrite, FileShare.None))
|
||||
{
|
||||
// Create the CPIO file which will (hopefully) contain all the required files
|
||||
CpioFileCreator cpioCreator = new CpioFileCreator();
|
||||
cpioCreator.FromDirectory(
|
||||
@"C:\Users\frede\Source\Repos\dotnet-packaging\demo\bin\Debug\netcoreapp1.0\rhel.7-x64\publish\",
|
||||
"./usr/share/quamotion",
|
||||
cpioStream);
|
||||
cpioStream.Position = 0;
|
||||
|
||||
RpmPackageCreator rpmCreator = new RpmPackageCreator();
|
||||
rpmCreator.CreatePackage(
|
||||
cpioStream,
|
||||
"dotnet-demo",
|
||||
"0.1",
|
||||
"x86_64",
|
||||
"0.1",
|
||||
null,
|
||||
privateKey,
|
||||
targetStream);
|
||||
}
|
||||
|
||||
using (var targetStream = File.Open(@"dotnet-demo.rpm", FileMode.Open, FileAccess.Read, FileShare.None))
|
||||
{
|
||||
var package = RpmPackageReader.Read(targetStream);
|
||||
|
||||
var metadata = new RpmMetadata(package);
|
||||
var signature = new RpmSignature(package);
|
||||
|
||||
Assert.True(signature.Verify(publicKey));
|
||||
}
|
||||
}
|
||||
|
||||
private void AssertTagEqual(SignatureTag tag, RpmPackage originalPackage, RpmPackage package)
|
||||
{
|
||||
var originalRecord = originalPackage.Signature.Records[tag];
|
||||
var record = package.Signature.Records[tag];
|
||||
|
||||
// Don't have the private key
|
||||
if (tag != SignatureTag.RPMSIGTAG_PGP && tag != SignatureTag.RPMSIGTAG_RSA)
|
||||
if (tag != SignatureTag.RPMSIGTAG_PGP && tag != SignatureTag.RPMSIGTAG_RSA && tag != SignatureTag.RPMTAG_HEADERSIGNATURES)
|
||||
{
|
||||
Assert.Equal(originalRecord.Value, record.Value);
|
||||
}
|
||||
|
||||
@@ -202,7 +202,12 @@ namespace Packaging.Targets.Rpm
|
||||
/// </returns>
|
||||
public bool Verify(Stream pgpPublicKeyStream)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
var bundle = new PgpPublicKeyRingBundle(PgpUtilities.GetDecoderStream(pgpPublicKeyStream));
|
||||
var publicKeyRings = bundle.GetKeyRings().OfType<PgpPublicKeyRing>();
|
||||
var publicKeys = publicKeyRings.SelectMany(x => x.GetPublicKeys().OfType<PgpPublicKey>());
|
||||
var publicKey = publicKeys.FirstOrDefault();
|
||||
|
||||
return Verify(publicKey);
|
||||
}
|
||||
|
||||
public bool Verify(PgpPublicKey pgpPublicKey)
|
||||
|
||||
Reference in New Issue
Block a user