using System;
|
|
using System.IO;
|
|
using System.Security.Cryptography;
|
|
using System.Xml.Serialization;
|
|
using NUnit.Framework;
|
|
|
|
namespace BWP.ABCClient
|
|
{
|
|
[TestFixture]
|
|
public class CertManagerTest
|
|
{
|
|
[SetUp]
|
|
public void Setup()
|
|
{
|
|
var manager = new CertManager();
|
|
manager.ClearAll();
|
|
}
|
|
|
|
[Test]
|
|
public void SetupLocation()
|
|
{
|
|
var manager = new CertManager();
|
|
const string fileName = "Certs/asB.pfx";
|
|
const string password = "14814622";
|
|
manager.SetupPfx(fileName, password);
|
|
var cert = manager.Fetch("337100000000066");
|
|
var rsa = cert.PrivateKey as RSACryptoServiceProvider;
|
|
}
|
|
|
|
[Test]
|
|
public void ClearAll()
|
|
{
|
|
var manager = new CertManager();
|
|
const string fileName = "Certs/asB.pfx";
|
|
const string password = "14814622";
|
|
manager.SetupPfx(fileName, password);
|
|
manager.ClearAll();
|
|
var certs = manager.FetchAll();
|
|
Assert.IsTrue(certs.Count == 0);
|
|
}
|
|
|
|
[Test]
|
|
public void SetupPfxFile()
|
|
{
|
|
var manager = new CertManager();
|
|
const string fileName = "Certs/asB.pfx";
|
|
const string password = "14814622";
|
|
manager.SetupPfx(fileName, password);
|
|
var cert = manager.Fetch("337100000000066");
|
|
Assert.AreEqual("7B97CA10275A0121D1B9", cert.SerialNumber);
|
|
}
|
|
|
|
[Test]
|
|
public void Remove()
|
|
{
|
|
var manager = new CertManager();
|
|
const string fileName = "Certs/asB.pfx";
|
|
const string password = "14814622";
|
|
manager.SetupPfx(fileName, password);
|
|
manager.Remove("337100000000066");
|
|
try {
|
|
manager.Fetch("337100000000066");
|
|
Assert.Fail("error");
|
|
} catch (Exception e) {
|
|
Assert.AreEqual("找不到商户号对应的证书", e.Message);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void SetupPfxStream()
|
|
{
|
|
var manager = new CertManager();
|
|
using (var stream = File.OpenRead("Certs/asB.pfx")) {
|
|
const string password = "14814622";
|
|
manager.SetupPfx(stream, password);
|
|
}
|
|
var cert = manager.Fetch("337100000000066");
|
|
Assert.AreEqual("7B97CA10275A0121D1B9", cert.SerialNumber);
|
|
}
|
|
|
|
[Test]
|
|
public void ExportCert()
|
|
{
|
|
var manager = new CertManager();
|
|
const string fileName = "Certs/asB.pfx";
|
|
const string password = "14814622";
|
|
manager.SetupPfx(fileName, password);
|
|
using (var stream = File.OpenWrite("Certs/asBclone.pfx")) {
|
|
manager.Export("337100000000066", password, stream);
|
|
}
|
|
}
|
|
}
|
|
}
|