83 lines
2.2 KiB
C#
83 lines
2.2 KiB
C#
using NUnit.Framework;
|
|
using Sarand.Net.Standard.Base.Data;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Sacs.UnitTests.Net.Standard.Base.Data
|
|
{
|
|
[TestFixture]
|
|
public class SacsDataFn_Tester
|
|
{
|
|
// --- Data Members ---
|
|
|
|
private static Random random = new Random();
|
|
|
|
// --- Utilities ---
|
|
|
|
/// <summary>Create random alphanumeric string of specified length.</summary>
|
|
private static string RandomString (int length)
|
|
{
|
|
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
return new string(Enumerable.Repeat(chars, length)
|
|
.Select(s => s[random.Next(s.Length)]).ToArray());
|
|
}
|
|
|
|
// --- Tests ---
|
|
|
|
[Test]
|
|
public void Sapphire ()
|
|
{
|
|
String encodedEncrypted = "6NP R78:P.8$2Q";
|
|
String raw = SacsDataFn._sadcs (encodedEncrypted, new SacsData("SaItemOptionMgr_Odbc"));
|
|
Assert.That(raw, Is.EqualTo("sarand"));
|
|
}
|
|
|
|
[Test]
|
|
public void Encode ()
|
|
{
|
|
// Test the Encoding algorythm.
|
|
for (int i = 0; i < 1000; i++)
|
|
{
|
|
String rawData = RandomString(random.Next(10,21));
|
|
SacsData dataEnc = SacsDataFn._saecd (new SacsData(rawData).DataBuffer);
|
|
Assert.That(dataEnc.NullTerminatedString, Is.Not.EqualTo(rawData));
|
|
SacsData dataDec = SacsDataFn._sadcd (dataEnc.DataBuffer);
|
|
Assert.That(dataDec.NullTerminatedString, Is.EqualTo(rawData));
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void Encrypt_String ()
|
|
{
|
|
// Test the Encryption algorythm.
|
|
for (int i = 0; i < 1000; i++)
|
|
{
|
|
String rawData = RandomString(random.Next(10,21));
|
|
String dataEnc = SacsDataFn._saecs (rawData);
|
|
Assert.That(dataEnc, Is.Not.EqualTo(rawData));
|
|
String dataDec = SacsDataFn._sadcs (dataEnc);
|
|
Assert.That(dataDec, Is.EqualTo(rawData));
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void RC4Encrypt_String ()
|
|
{
|
|
// Test the RC4 algorythm:
|
|
for (int i = 0; i < 1000; i++)
|
|
{
|
|
String rawData = RandomString(random.Next(10,21));
|
|
SacsData dataEnc = SacsDataFn.RC4 (new SacsData(rawData).DataBuffer);
|
|
Assert.That(dataEnc.NullTerminatedString, Is.Not.EqualTo(rawData));
|
|
SacsData dataDec = SacsDataFn.RC4 (dataEnc.DataBuffer);
|
|
Assert.That(dataDec.NullTerminatedString, Is.EqualTo(rawData));
|
|
}
|
|
}
|
|
|
|
// --- The End ---
|
|
}
|
|
}
|