public void TestSignFeed()
{
using (var stream = new MemoryStream())
{
var feed = FeedTest.CreateTestFeed();
const string passphrase = "passphrase123";
var signature = new byte[] {1, 2, 3};
var secretKey = new OpenPgpSecretKey(keyID: 123, fingerprint: new byte[] {1, 2, 3}, userID: "user");
var openPgpMock = CreateMock<IOpenPgp>();
openPgpMock.Setup(x => x.Sign(It.IsAny<byte[]>(), secretKey, passphrase))
.Returns(signature);
feed.SaveXml(stream);
FeedUtils.SignFeed(stream, secretKey, passphrase, openPgpMock.Object);
string signedFeed = stream.ReadToString();
string expectedFeed = feed.ToXmlString() + Store.Feeds.FeedUtils.SignatureBlockStart +
Convert.ToBase64String(signature) + "\n" + Store.Feeds.FeedUtils.SignatureBlockEnd;
signedFeed.Should().Be(expectedFeed, because: "Feed should remain unchanged except for appended XML signatre");
}
}
}