Files
Common-VS2019/SacsCoreUnitTests/Standard/Base/Data/SacsDataFn_Tester.cs
T
2021-05-05 15:36:28 +01:00

86 lines
2.8 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
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
{
//=======================================================================
[TestClass]
public class SacsDataFn_Tester
{
//-------------------------------------------------------------------
// Data memebrs.
private static Random random = new Random();
//-------------------------------------------------------------------
/// <summary>Create random alphanumeric string of specified length.</summary>
public static string RandomString (int length)
{
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
return new string(Enumerable.Repeat(chars, length)
.Select(s => s[random.Next(s.Length)]).ToArray());
}
//-------------------------------------------------------------------
[TestMethod]
public void Sapphire ()
{
String encodedEncrypted = "6NP R78:P.8$2Q";
String raw = SacsDataFn._sadcs (encodedEncrypted, new SacsData("SaItemOptionMgr_Odbc"));
Assert.AreEqual("sarand", raw);
}
//-------------------------------------------------------------------
[TestMethod]
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.AreNotEqual(rawData, dataEnc.NullTerminatedString);
SacsData dataDec = SacsDataFn._sadcd (dataEnc.DataBuffer);
Assert.AreEqual(rawData, dataDec.NullTerminatedString);
}
}
//-------------------------------------------------------------------
[TestMethod]
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.AreNotEqual(rawData, dataEnc);
String dataDec = SacsDataFn._sadcs (dataEnc);
Assert.AreEqual(rawData, dataDec);
}
}
//-------------------------------------------------------------------
[TestMethod]
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.AreNotEqual(rawData, dataEnc.NullTerminatedString);
SacsData dataDec = SacsDataFn.RC4 (dataEnc.DataBuffer);
Assert.AreEqual(rawData, dataDec.NullTerminatedString);
}
}
//-------------------------------------------------------------------
}
//=======================================================================
}