Migrate Common tests to NUnit
This commit is contained in:
@@ -10,8 +10,15 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.10.0" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="4.4.0" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="4.4.0" />
|
||||
<PackageReference Include="NUnit" Version="4.6.1" />
|
||||
<PackageReference Include="NUnit3TestAdapter" Version="6.3.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="NUnit.Analyzers" Version="4.15.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="10.0.1">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -6,15 +6,12 @@ using System.Text;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.App
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SacsCommandLineInfo_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// --- Tests ---
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SacsCommandLineInfo_CTR()
|
||||
{
|
||||
SacsCommandLineInfo cmdLineInfo = new SacsCommandLineInfo(new String[]
|
||||
@@ -24,12 +21,11 @@ namespace Sacs.UnitTests.Net.Standard.Base.App
|
||||
"Andy",
|
||||
"-SaProcess:ExportData",
|
||||
});
|
||||
Assert.IsNotNull(cmdLineInfo);
|
||||
Assert.AreEqual(4, cmdLineInfo.ParamCount);
|
||||
Assert.AreEqual(1, cmdLineInfo.ProcessDefinitions.Count);
|
||||
Assert.That(cmdLineInfo, Is.Not.Null);
|
||||
Assert.That(cmdLineInfo.ParamCount, Is.EqualTo(4));
|
||||
Assert.That(cmdLineInfo.ProcessDefinitions.Count, Is.EqualTo(1));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -6,21 +6,18 @@ using System.Text;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.App
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SacsProcessDefinition_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// --- Tests ---
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SacsProcessDefinition_CTR()
|
||||
{
|
||||
// Valid process definitions.
|
||||
Assert.IsNotNull(new SacsProcessDefinition("SaProcess:ExportData"));
|
||||
Assert.IsNotNull(new SacsProcessDefinition("SaProcess:Proc=ExportData"));
|
||||
Assert.IsNotNull(new SacsProcessDefinition("SaProcess:ExportData;User=System"));
|
||||
Assert.That(new SacsProcessDefinition("SaProcess:ExportData"), Is.Not.Null);
|
||||
Assert.That(new SacsProcessDefinition("SaProcess:Proc=ExportData"), Is.Not.Null);
|
||||
Assert.That(new SacsProcessDefinition("SaProcess:ExportData;User=System"), Is.Not.Null);
|
||||
|
||||
// Invalid process definition - blank argument.
|
||||
try
|
||||
@@ -29,24 +26,22 @@ namespace Sacs.UnitTests.Net.Standard.Base.App
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Assert.AreEqual(typeof(NotSupportedException), exc.GetType());
|
||||
Assert.That(exc.GetType(), Is.EqualTo(typeof(NotSupportedException)));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SacsProcessDefinition_IsValidProcessDefinition()
|
||||
{
|
||||
// Valid process params.
|
||||
Assert.AreEqual(true, SacsProcessDefinition.IsValidProcessDefinition("SaProcess:ExportData"));
|
||||
Assert.That(SacsProcessDefinition.IsValidProcessDefinition("SaProcess:ExportData"), Is.EqualTo(true));
|
||||
|
||||
// Invalid process params.
|
||||
Assert.AreEqual(false, SacsProcessDefinition.IsValidProcessDefinition(""));
|
||||
Assert.AreEqual(false, SacsProcessDefinition.IsValidProcessDefinition("Abc"));
|
||||
Assert.AreEqual(false, SacsProcessDefinition.IsValidProcessDefinition("SaProcess"));
|
||||
Assert.That(SacsProcessDefinition.IsValidProcessDefinition(""), Is.EqualTo(false));
|
||||
Assert.That(SacsProcessDefinition.IsValidProcessDefinition("Abc"), Is.EqualTo(false));
|
||||
Assert.That(SacsProcessDefinition.IsValidProcessDefinition("SaProcess"), Is.EqualTo(false));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
@@ -6,93 +6,91 @@ using System.Collections.Generic;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Bus
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SysId_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// --- Data Members ---
|
||||
|
||||
private readonly SysId idNull = null;
|
||||
private readonly SysId id_ = new SysId();
|
||||
private readonly SysId id0 = new SysId(0);
|
||||
private readonly SysId id1 = new SysId(1);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void SysId_CTR_Void ()
|
||||
{
|
||||
Assert.IsNotNull(new SysId());
|
||||
Assert.AreEqual(0, new SysId().ToInt());
|
||||
Assert.IsTrue(String.IsNullOrEmpty(new SysId().ToString()));
|
||||
Assert.IsTrue(StringUtil.IsEmpty(new SysId().ToString()));
|
||||
Assert.AreEqual("", new SysId().ToString());
|
||||
Assert.AreEqual(string.Empty, new SysId().ToString());
|
||||
Assert.That(new SysId(), Is.Not.Null);
|
||||
Assert.That(new SysId().ToInt(), Is.EqualTo(0));
|
||||
Assert.That(String.IsNullOrEmpty(new SysId().ToString()), Is.True);
|
||||
Assert.That(StringUtil.IsEmpty(new SysId().ToString()), Is.True);
|
||||
Assert.That(new SysId().ToString(), Is.Empty);
|
||||
Assert.That(new SysId().ToString(), Is.Empty);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysId_CTR_Long ()
|
||||
{
|
||||
// Zero - invalid.
|
||||
Assert.IsNotNull(new SysId(0));
|
||||
Assert.That(new SysId(0), Is.Not.Null);
|
||||
|
||||
// 1 - Valid.
|
||||
Assert.IsNotNull(new SysId(1));
|
||||
Assert.IsNotNull(new SysId(-1));
|
||||
Assert.That(new SysId(1), Is.Not.Null);
|
||||
Assert.That(new SysId(-1), Is.Not.Null);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Is Valid.
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysId_IsValid ()
|
||||
{
|
||||
Assert.IsFalse(SysId.IsValid(null));
|
||||
Assert.IsFalse(SysId.IsValid(new SysId()));
|
||||
Assert.IsFalse(SysId.IsValid(new SysId(0)));
|
||||
Assert.IsTrue(SysId.IsValid(new SysId(1)));
|
||||
Assert.IsTrue(SysId.IsValid(new SysId(-1)));
|
||||
Assert.That(SysId.IsValid(null), Is.False);
|
||||
Assert.That(SysId.IsValid(new SysId()), Is.False);
|
||||
Assert.That(SysId.IsValid(new SysId(0)), Is.False);
|
||||
Assert.That(SysId.IsValid(new SysId(1)), Is.True);
|
||||
Assert.That(SysId.IsValid(new SysId(-1)), Is.True);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Invalid on null.
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysId_InvalidOnNull ()
|
||||
{
|
||||
Assert.IsNotNull(SysId.InvalidOnNull(null));
|
||||
Assert.IsFalse(SysId.IsValid(SysId.InvalidOnNull(null)));
|
||||
Assert.IsFalse(SysId.IsValid(SysId.InvalidOnNull(new SysId())));
|
||||
Assert.IsFalse(SysId.IsValid(SysId.InvalidOnNull(new SysId(0))));
|
||||
Assert.IsTrue(SysId.IsValid(SysId.InvalidOnNull(new SysId(1))));
|
||||
Assert.IsTrue(SysId.IsValid(SysId.InvalidOnNull(new SysId(-1))));
|
||||
Assert.That(SysId.InvalidOnNull(null), Is.Not.Null);
|
||||
Assert.That(SysId.IsValid(SysId.InvalidOnNull(null)), Is.False);
|
||||
Assert.That(SysId.IsValid(SysId.InvalidOnNull(new SysId())), Is.False);
|
||||
Assert.That(SysId.IsValid(SysId.InvalidOnNull(new SysId(0))), Is.False);
|
||||
Assert.That(SysId.IsValid(SysId.InvalidOnNull(new SysId(1))), Is.True);
|
||||
Assert.That(SysId.IsValid(SysId.InvalidOnNull(new SysId(-1))), Is.True);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysId_Equals_Object ()
|
||||
{
|
||||
Assert.IsFalse(id_.Equals(null));
|
||||
Assert.IsFalse(id0.Equals(null));
|
||||
Assert.IsFalse(id1.Equals(null));
|
||||
Assert.IsFalse(id_.Equals((Object)id_));
|
||||
Assert.IsFalse(id_.Equals((Object)id0));
|
||||
Assert.IsFalse(id_.Equals((Object)id1));
|
||||
Assert.IsFalse(id0.Equals((Object)id_));
|
||||
Assert.IsFalse(id0.Equals((Object)id0));
|
||||
Assert.IsFalse(id0.Equals((Object)id1));
|
||||
Assert.IsFalse(id1.Equals((Object)id_));
|
||||
Assert.IsFalse(id1.Equals((Object)id0));
|
||||
Assert.IsTrue(id1.Equals((Object)id1));
|
||||
Assert.That(id_.Equals(null), Is.False);
|
||||
Assert.That(id0.Equals(null), Is.False);
|
||||
Assert.That(id1.Equals(null), Is.False);
|
||||
Assert.That(id_.Equals((Object)id_), Is.False);
|
||||
Assert.That(id_.Equals((Object)id0), Is.False);
|
||||
Assert.That(id_.Equals((Object)id1), Is.False);
|
||||
Assert.That(id0.Equals((Object)id_), Is.False);
|
||||
Assert.That(id0.Equals((Object)id0), Is.False);
|
||||
Assert.That(id0.Equals((Object)id1), Is.False);
|
||||
Assert.That(id1.Equals((Object)id_), Is.False);
|
||||
Assert.That(id1.Equals((Object)id0), Is.False);
|
||||
Assert.That(id1.Equals((Object)id1), Is.True);
|
||||
}
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysId_Equals_SysId ()
|
||||
{
|
||||
// Invalid values always unequal.
|
||||
Assert.IsFalse(id_.Equals(null));
|
||||
Assert.IsFalse(id_.Equals(idNull));
|
||||
Assert.IsFalse(id_.Equals(id_));
|
||||
Assert.IsFalse(id_.Equals(id0));
|
||||
Assert.IsFalse(id_.Equals(new SysId()));
|
||||
Assert.That(id_.Equals(null), Is.False);
|
||||
Assert.That(id_.Equals(idNull), Is.False);
|
||||
Assert.That(id_.Equals(id_), Is.False);
|
||||
Assert.That(id_.Equals(id0), Is.False);
|
||||
Assert.That(id_.Equals(new SysId()), Is.False);
|
||||
|
||||
// Valid values.
|
||||
Assert.IsTrue(id1.Equals(new SysId(1)));
|
||||
Assert.That(id1.Equals(new SysId(1)), Is.True);
|
||||
|
||||
for (int i = 1; i <= 1000; i++)
|
||||
{
|
||||
@@ -100,18 +98,15 @@ namespace Sacs.UnitTests.Net.Standard.Base.Bus
|
||||
for (int j = 1; j <= 1000; j++)
|
||||
{
|
||||
SysId idJ = new SysId(j);
|
||||
if (i == j) Assert.IsTrue(idI.Equals(idJ));
|
||||
else Assert.IsFalse(idI.Equals(idJ));
|
||||
if (i == j) Assert.That(idI.Equals(idJ), Is.True);
|
||||
else Assert.That(idI.Equals(idJ), Is.False);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// S y s I d L i s t
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Lists ---
|
||||
[Test]
|
||||
public void SysId_List_GetIdCount ()
|
||||
{
|
||||
List<SysId> ids = new List<SysId>()
|
||||
@@ -127,19 +122,18 @@ namespace Sacs.UnitTests.Net.Standard.Base.Bus
|
||||
new SysId(),
|
||||
};
|
||||
// Unique, valid only.
|
||||
Assert.AreEqual(3, ids.GetIdCount());
|
||||
Assert.AreEqual(3, ids.GetIdCount(true,true));
|
||||
Assert.That(ids.GetIdCount(), Is.EqualTo(3));
|
||||
Assert.That(ids.GetIdCount(true, true), Is.EqualTo(3));
|
||||
// Unique including invalid.
|
||||
Assert.AreEqual(4, ids.GetIdCount(false));
|
||||
Assert.AreEqual(4, ids.GetIdCount(false,true));
|
||||
Assert.That(ids.GetIdCount(false), Is.EqualTo(4));
|
||||
Assert.That(ids.GetIdCount(false, true), Is.EqualTo(4));
|
||||
// Duplicate, valid only.
|
||||
Assert.AreEqual(6, ids.GetIdCount(true, false));
|
||||
Assert.That(ids.GetIdCount(true, false), Is.EqualTo(6));
|
||||
// Duplicate including invalid.
|
||||
Assert.AreEqual(9, ids.GetIdCount(false,false));
|
||||
Assert.That(ids.GetIdCount(false, false), Is.EqualTo(9));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysId_List_HasValidIds ()
|
||||
{
|
||||
List<SysId> ids = new List<SysId>();
|
||||
@@ -147,7 +141,7 @@ namespace Sacs.UnitTests.Net.Standard.Base.Bus
|
||||
// Single valid Id.
|
||||
ids.Clear();
|
||||
ids.Add(new SysId(123));
|
||||
Assert.AreEqual(true, ids.HasValidIds());
|
||||
Assert.That(ids.HasValidIds(), Is.EqualTo(true));
|
||||
|
||||
// Several valid ids.
|
||||
ids.Clear();
|
||||
@@ -157,7 +151,7 @@ namespace Sacs.UnitTests.Net.Standard.Base.Bus
|
||||
new SysId(2),
|
||||
new SysId(3),
|
||||
});
|
||||
Assert.AreEqual(true, ids.HasValidIds());
|
||||
Assert.That(ids.HasValidIds(), Is.EqualTo(true));
|
||||
|
||||
// Invalid only.
|
||||
ids.Clear();
|
||||
@@ -167,13 +161,13 @@ namespace Sacs.UnitTests.Net.Standard.Base.Bus
|
||||
new SysId(),
|
||||
new SysId(),
|
||||
});
|
||||
Assert.AreEqual(false, ids.HasValidIds());
|
||||
Assert.That(ids.HasValidIds(), Is.EqualTo(false));
|
||||
|
||||
// Add valid Id.
|
||||
ids.Add(new SysId(123));
|
||||
Assert.AreEqual(true, ids.HasValidIds());
|
||||
Assert.That(ids.HasValidIds(), Is.EqualTo(true));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,58 +1,22 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using System.Linq;
|
||||
using Sarand.Net.Standard.Base.Data;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Data
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SacsAesIvCrypter_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// --- Data Members ---
|
||||
|
||||
private static Random random = new Random();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SacsAesIvCrypter_Tester ()
|
||||
{
|
||||
}
|
||||
// --- Tests ---
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
///Gets or sets the test context which provides
|
||||
///information about and functionality for the current test run.
|
||||
///</summary>
|
||||
public TestContext TestContext { get; set; }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
#region Additional test attributes
|
||||
//
|
||||
// You can use the following additional attributes as you write your tests:
|
||||
//
|
||||
// Use ClassInitialize to run code before running the first test in the class
|
||||
// [ClassInitialize()]
|
||||
// public static void MyClassInitialize(TestContext testContext) { }
|
||||
//
|
||||
// Use ClassCleanup to run code after all tests in a class have run
|
||||
// [ClassCleanup()]
|
||||
// public static void MyClassCleanup() { }
|
||||
//
|
||||
// Use TestInitialize to run code before running each test
|
||||
// [TestInitialize()]
|
||||
// public void MyTestInitialize() { }
|
||||
//
|
||||
// Use TestCleanup to run code after each test has run
|
||||
// [TestCleanup()]
|
||||
// public void MyTestCleanup() { }
|
||||
//
|
||||
#endregion
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SacsAesIvCrypter_Test ()
|
||||
{
|
||||
for (int i = 0; i < 200; i++)
|
||||
@@ -63,13 +27,14 @@ namespace Sacs.UnitTests.Net.Standard.Base.Data
|
||||
int keyLength = key.Length;
|
||||
String encrypted = SacsAesIvCrypter.Encrypt(data, key);
|
||||
int encryptedLength = encrypted.Length;
|
||||
Assert.AreEqual(data, SacsAesIvCrypter.Decrypt(encrypted, key));
|
||||
Assert.That(SacsAesIvCrypter.Decrypt(encrypted, key), Is.EqualTo(data));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- Utilities ---
|
||||
|
||||
/// <summary>Generate random alphanumeric string</summary>
|
||||
public static String RandomString (int length, bool includeLowerCase = true, bool includeSymbols = true)
|
||||
private static String RandomString (int length, bool includeLowerCase = true, bool includeSymbols = true)
|
||||
{
|
||||
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
if (includeLowerCase) chars += "abcdefghijklmnopqrstuvwxyz";
|
||||
@@ -77,7 +42,6 @@ namespace Sacs.UnitTests.Net.Standard.Base.Data
|
||||
return new string(Enumerable.Repeat(chars, length).Select(s => s[random.Next(s.Length)]).ToArray());
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -1,75 +1,70 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Data;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Data
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SacsCsvHandler_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void ParseCsvRecord_FieldCount ()
|
||||
{
|
||||
Assert.AreEqual(0, SacsCsvHandler.ParseCsvRecord(null).Count);
|
||||
Assert.AreEqual(1, SacsCsvHandler.ParseCsvRecord("").Count);
|
||||
Assert.AreEqual(2, SacsCsvHandler.ParseCsvRecord(",").Count);
|
||||
Assert.AreEqual(3, SacsCsvHandler.ParseCsvRecord("A,B,C").Count);
|
||||
Assert.AreEqual(5, SacsCsvHandler.ParseCsvRecord("A,B,C,D,E").Count);
|
||||
Assert.That(SacsCsvHandler.ParseCsvRecord(null).Count, Is.EqualTo(0));
|
||||
Assert.That(SacsCsvHandler.ParseCsvRecord("").Count, Is.EqualTo(1));
|
||||
Assert.That(SacsCsvHandler.ParseCsvRecord(",").Count, Is.EqualTo(2));
|
||||
Assert.That(SacsCsvHandler.ParseCsvRecord("A,B,C").Count, Is.EqualTo(3));
|
||||
Assert.That(SacsCsvHandler.ParseCsvRecord("A,B,C,D,E").Count, Is.EqualTo(5));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ParseCsvRecord_Simple_NoText ()
|
||||
{
|
||||
String data = "A,B,C";
|
||||
List<String> fields = SacsCsvHandler.ParseCsvRecord(data);
|
||||
Assert.AreEqual(3, fields.Count);
|
||||
Assert.AreEqual("B", fields[1]);
|
||||
Assert.That(fields.Count, Is.EqualTo(3));
|
||||
Assert.That(fields[1], Is.EqualTo("B"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ParseCsvRecord_Text_Simple ()
|
||||
{
|
||||
List<String> fields = SacsCsvHandler.ParseCsvRecord("A,\"B\",C");
|
||||
Assert.AreEqual(3, fields.Count);
|
||||
Assert.AreEqual("A", fields[0]);
|
||||
Assert.AreEqual("B", fields[1]);
|
||||
Assert.AreEqual("C", fields[2]);
|
||||
Assert.That(fields.Count, Is.EqualTo(3));
|
||||
Assert.That(fields[0], Is.EqualTo("A"));
|
||||
Assert.That(fields[1], Is.EqualTo("B"));
|
||||
Assert.That(fields[2], Is.EqualTo("C"));
|
||||
|
||||
fields = SacsCsvHandler.ParseCsvRecord("A,\"B\",\"C\"");
|
||||
Assert.AreEqual(3, fields.Count);
|
||||
Assert.AreEqual("A", fields[0]);
|
||||
Assert.AreEqual("B", fields[1]);
|
||||
Assert.AreEqual("C", fields[2]);
|
||||
Assert.That(fields.Count, Is.EqualTo(3));
|
||||
Assert.That(fields[0], Is.EqualTo("A"));
|
||||
Assert.That(fields[1], Is.EqualTo("B"));
|
||||
Assert.That(fields[2], Is.EqualTo("C"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ParseCsvRecord_Text_WithFieldDelim ()
|
||||
{
|
||||
List<String> fields = SacsCsvHandler.ParseCsvRecord("A,\",\",C");
|
||||
Assert.AreEqual(3, fields.Count);
|
||||
Assert.AreEqual("A", fields[0]);
|
||||
Assert.AreEqual(",", fields[1]);
|
||||
Assert.AreEqual("C", fields[2]);
|
||||
Assert.That(fields.Count, Is.EqualTo(3));
|
||||
Assert.That(fields[0], Is.EqualTo("A"));
|
||||
Assert.That(fields[1], Is.EqualTo(","));
|
||||
Assert.That(fields[2], Is.EqualTo("C"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ParseCsvRecord_Text_EmbeddedTextDelims ()
|
||||
{
|
||||
List<String> fields = SacsCsvHandler.ParseCsvRecord("A,\"\"\"\",C");
|
||||
Assert.AreEqual(3, fields.Count);
|
||||
Assert.AreEqual("A", fields[0]);
|
||||
Assert.AreEqual("\"", fields[1]);
|
||||
Assert.AreEqual("C", fields[2]);
|
||||
Assert.That(fields.Count, Is.EqualTo(3));
|
||||
Assert.That(fields[0], Is.EqualTo("A"));
|
||||
Assert.That(fields[1], Is.EqualTo("\""));
|
||||
Assert.That(fields[2], Is.EqualTo("C"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -8,34 +8,34 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Data
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SacsDataFn_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data memebrs.
|
||||
// --- Data Members ---
|
||||
|
||||
private static Random random = new Random();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- Utilities ---
|
||||
|
||||
/// <summary>Create random alphanumeric string of specified length.</summary>
|
||||
public static string RandomString (int length)
|
||||
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());
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void Sapphire ()
|
||||
{
|
||||
String encodedEncrypted = "6NP R78:P.8$2Q";
|
||||
String raw = SacsDataFn._sadcs (encodedEncrypted, new SacsData("SaItemOptionMgr_Odbc"));
|
||||
Assert.AreEqual("sarand", raw);
|
||||
Assert.That(raw, Is.EqualTo("sarand"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void Encode ()
|
||||
{
|
||||
// Test the Encoding algorythm.
|
||||
@@ -43,14 +43,13 @@ namespace Sacs.UnitTests.Net.Standard.Base.Data
|
||||
{
|
||||
String rawData = RandomString(random.Next(10,21));
|
||||
SacsData dataEnc = SacsDataFn._saecd (new SacsData(rawData).DataBuffer);
|
||||
Assert.AreNotEqual(rawData, dataEnc.NullTerminatedString);
|
||||
Assert.That(dataEnc.NullTerminatedString, Is.Not.EqualTo(rawData));
|
||||
SacsData dataDec = SacsDataFn._sadcd (dataEnc.DataBuffer);
|
||||
Assert.AreEqual(rawData, dataDec.NullTerminatedString);
|
||||
Assert.That(dataDec.NullTerminatedString, Is.EqualTo(rawData));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void Encrypt_String ()
|
||||
{
|
||||
// Test the Encryption algorythm.
|
||||
@@ -58,14 +57,13 @@ namespace Sacs.UnitTests.Net.Standard.Base.Data
|
||||
{
|
||||
String rawData = RandomString(random.Next(10,21));
|
||||
String dataEnc = SacsDataFn._saecs (rawData);
|
||||
Assert.AreNotEqual(rawData, dataEnc);
|
||||
Assert.That(dataEnc, Is.Not.EqualTo(rawData));
|
||||
String dataDec = SacsDataFn._sadcs (dataEnc);
|
||||
Assert.AreEqual(rawData, dataDec);
|
||||
Assert.That(dataDec, Is.EqualTo(rawData));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void RC4Encrypt_String ()
|
||||
{
|
||||
// Test the RC4 algorythm:
|
||||
@@ -73,13 +71,12 @@ namespace Sacs.UnitTests.Net.Standard.Base.Data
|
||||
{
|
||||
String rawData = RandomString(random.Next(10,21));
|
||||
SacsData dataEnc = SacsDataFn.RC4 (new SacsData(rawData).DataBuffer);
|
||||
Assert.AreNotEqual(rawData, dataEnc.NullTerminatedString);
|
||||
Assert.That(dataEnc.NullTerminatedString, Is.Not.EqualTo(rawData));
|
||||
SacsData dataDec = SacsDataFn.RC4 (dataEnc.DataBuffer);
|
||||
Assert.AreEqual(rawData, dataDec.NullTerminatedString);
|
||||
Assert.That(dataDec.NullTerminatedString, Is.EqualTo(rawData));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -8,54 +8,53 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Data
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SacsData_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data memebrs.
|
||||
// --- Data Members ---
|
||||
|
||||
private static Random random = new Random();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- Utilities ---
|
||||
|
||||
/// <summary>Create random alphanumeric string of specified length.</summary>
|
||||
public static string RandomString (int length)
|
||||
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());
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void CTR_String ()
|
||||
{
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
String rawValue = RandomString(random.Next(10,21));
|
||||
// Default (ASCII) encoding.
|
||||
Assert.AreEqual(rawValue, (String)new SacsData(rawValue));
|
||||
Assert.That((String)new SacsData(rawValue), Is.EqualTo(rawValue));
|
||||
// UniCode encoding.
|
||||
Assert.AreEqual(rawValue, (String)new SacsData(rawValue, Encoding.Unicode));
|
||||
Assert.That((String)new SacsData(rawValue, Encoding.Unicode), Is.EqualTo(rawValue));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void CTR_Copy ()
|
||||
{
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
String rawValue = RandomString(random.Next(10,21));
|
||||
// Default (ASCII) encoding.
|
||||
Assert.AreEqual(rawValue, (String)new SacsData(new SacsData(rawValue)));
|
||||
Assert.That((String)new SacsData(new SacsData(rawValue)), Is.EqualTo(rawValue));
|
||||
// UTF-8 encoding.
|
||||
Assert.AreEqual(rawValue, (String)new SacsData(new SacsData(rawValue, Encoding.UTF8)));
|
||||
Assert.That((String)new SacsData(new SacsData(rawValue, Encoding.UTF8)), Is.EqualTo(rawValue));
|
||||
// UniCode encoding.
|
||||
Assert.AreEqual(rawValue, (String)new SacsData(new SacsData(rawValue, Encoding.Unicode)));
|
||||
Assert.That((String)new SacsData(new SacsData(rawValue, Encoding.Unicode)), Is.EqualTo(rawValue));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Dbas.Base;
|
||||
using Sarand.Net.Standard.Dbas.Data;
|
||||
@@ -11,9 +11,11 @@ using System.Data.Odbc;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Dbas
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class DatabaseProvider_Tester
|
||||
{
|
||||
// --- Definitions ---
|
||||
|
||||
private class ParameterTestItem : DbDataItem
|
||||
{
|
||||
public ParameterTestItem() : base() { }
|
||||
@@ -27,7 +29,7 @@ namespace Sacs.UnitTests.Net.Standard.Base.Dbas
|
||||
|
||||
// --- Provider Selection ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void OpenOdbcDatabase_CreatesSqlClientAndForcedOdbcConnections()
|
||||
{
|
||||
SacsDatabaseConsole.OdbcConfig config = new SacsDatabaseConsole.OdbcConfig
|
||||
@@ -42,16 +44,16 @@ namespace Sacs.UnitTests.Net.Standard.Base.Dbas
|
||||
using DbConnection sqlConnection = database.CreateConnection();
|
||||
using DbConnection odbcConnection = database.CreateConnection(true);
|
||||
|
||||
Assert.IsInstanceOfType(sqlConnection, typeof(SqlConnection));
|
||||
StringAssert.Contains(sqlConnection.ConnectionString, "Server=localhost");
|
||||
StringAssert.Contains(sqlConnection.ConnectionString, "Database=TestDb");
|
||||
Assert.IsInstanceOfType(odbcConnection, typeof(OdbcConnection));
|
||||
Assert.AreEqual(config.ConnectionString, odbcConnection.ConnectionString);
|
||||
Assert.That(sqlConnection, Is.TypeOf<SqlConnection>());
|
||||
Assert.That(sqlConnection.ConnectionString, Does.Contain("Server=localhost"));
|
||||
Assert.That(sqlConnection.ConnectionString, Does.Contain("Database=TestDb"));
|
||||
Assert.That(odbcConnection, Is.TypeOf<OdbcConnection>());
|
||||
Assert.That(odbcConnection.ConnectionString, Is.EqualTo(config.ConnectionString));
|
||||
}
|
||||
|
||||
// --- Command Parameters ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void AddCommandParameter_AssignsValuesNullsAndExplicitTypes()
|
||||
{
|
||||
ParameterTestItem item = new ParameterTestItem();
|
||||
@@ -61,16 +63,16 @@ namespace Sacs.UnitTests.Net.Standard.Base.Dbas
|
||||
item.AddParameter<int?>(command, "@MissingCount", null);
|
||||
item.AddParameter<byte[]>(command, "@Data", null);
|
||||
|
||||
Assert.AreEqual("@Count", command.Parameters[0].ParameterName);
|
||||
Assert.AreEqual(12, command.Parameters[0].Value);
|
||||
Assert.AreEqual(DbType.Int32, command.Parameters[0].DbType);
|
||||
Assert.AreEqual(DBNull.Value, command.Parameters[1].Value);
|
||||
Assert.AreEqual(DbType.Int32, command.Parameters[1].DbType);
|
||||
Assert.AreEqual(DBNull.Value, command.Parameters[2].Value);
|
||||
Assert.AreEqual(DbType.Binary, command.Parameters[2].DbType);
|
||||
Assert.That(command.Parameters[0].ParameterName, Is.EqualTo("@Count"));
|
||||
Assert.That(command.Parameters[0].Value, Is.EqualTo(12));
|
||||
Assert.That(command.Parameters[0].DbType, Is.EqualTo(DbType.Int32));
|
||||
Assert.That(command.Parameters[1].Value, Is.EqualTo(DBNull.Value));
|
||||
Assert.That(command.Parameters[1].DbType, Is.EqualTo(DbType.Int32));
|
||||
Assert.That(command.Parameters[2].Value, Is.EqualTo(DBNull.Value));
|
||||
Assert.That(command.Parameters[2].DbType, Is.EqualTo(DbType.Binary));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void AddCommandParameter_NormalisesSqlAndOdbcDates()
|
||||
{
|
||||
ParameterTestItem item = new ParameterTestItem();
|
||||
@@ -81,13 +83,13 @@ namespace Sacs.UnitTests.Net.Standard.Base.Dbas
|
||||
item.AddParameter(sqlCommand, "@When", value);
|
||||
item.AddParameter(odbcCommand, "When", value);
|
||||
|
||||
Assert.AreEqual(DbType.DateTime2, sqlCommand.Parameters[0].DbType);
|
||||
Assert.AreEqual(DbType.DateTime, odbcCommand.Parameters[0].DbType);
|
||||
Assert.AreEqual(value.AddMilliseconds(-456), sqlCommand.Parameters[0].Value);
|
||||
Assert.AreEqual(value.AddMilliseconds(-456), odbcCommand.Parameters[0].Value);
|
||||
Assert.That(sqlCommand.Parameters[0].DbType, Is.EqualTo(DbType.DateTime2));
|
||||
Assert.That(odbcCommand.Parameters[0].DbType, Is.EqualTo(DbType.DateTime));
|
||||
Assert.That(sqlCommand.Parameters[0].Value, Is.EqualTo(value.AddMilliseconds(-456)));
|
||||
Assert.That(odbcCommand.Parameters[0].Value, Is.EqualTo(value.AddMilliseconds(-456)));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void AddCommandParameter_MapsSentinelDatesToDatabaseNull()
|
||||
{
|
||||
ParameterTestItem item = new ParameterTestItem();
|
||||
@@ -97,12 +99,12 @@ namespace Sacs.UnitTests.Net.Standard.Base.Dbas
|
||||
item.AddParameter<DateTime?>(command, "@Maximum", DateTime.MaxValue);
|
||||
item.AddParameter<DateTime?>(command, "@Missing", null);
|
||||
|
||||
Assert.AreEqual(DBNull.Value, command.Parameters[0].Value);
|
||||
Assert.AreEqual(DBNull.Value, command.Parameters[1].Value);
|
||||
Assert.AreEqual(DBNull.Value, command.Parameters[2].Value);
|
||||
Assert.AreEqual(DbType.DateTime2, command.Parameters[0].DbType);
|
||||
Assert.AreEqual(DbType.DateTime2, command.Parameters[1].DbType);
|
||||
Assert.AreEqual(DbType.DateTime2, command.Parameters[2].DbType);
|
||||
Assert.That(command.Parameters[0].Value, Is.EqualTo(DBNull.Value));
|
||||
Assert.That(command.Parameters[1].Value, Is.EqualTo(DBNull.Value));
|
||||
Assert.That(command.Parameters[2].Value, Is.EqualTo(DBNull.Value));
|
||||
Assert.That(command.Parameters[0].DbType, Is.EqualTo(DbType.DateTime2));
|
||||
Assert.That(command.Parameters[1].DbType, Is.EqualTo(DbType.DateTime2));
|
||||
Assert.That(command.Parameters[2].DbType, Is.EqualTo(DbType.DateTime2));
|
||||
}
|
||||
|
||||
// --- The End ---
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using MimeKit;
|
||||
using Sarand.Net.Standard.Base.Email;
|
||||
|
||||
namespace Sarand.UnitTests.Standard.Base.Email
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SaEmailConsole_Tester
|
||||
{
|
||||
// --- Test Support ---
|
||||
// --- Definitions ---
|
||||
|
||||
private class TestEmailConsole : SaEmailConsole
|
||||
{
|
||||
@@ -21,7 +21,7 @@ namespace Sarand.UnitTests.Standard.Base.Email
|
||||
|
||||
// --- Message Content ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void CreateMailMessage_PopulatesAddressesSubjectAndTextBody()
|
||||
{
|
||||
SaEmailData emailData = CreateEmailData();
|
||||
@@ -34,18 +34,18 @@ namespace Sarand.UnitTests.Standard.Base.Email
|
||||
|
||||
MimeMessage message = new TestEmailConsole().CreateMessage(emailData);
|
||||
|
||||
Assert.AreEqual("sender@example.com", ((MailboxAddress)message.From.Single()).Address);
|
||||
Assert.AreEqual("to@example.com", ((MailboxAddress)message.To.Single()).Address);
|
||||
Assert.AreEqual("cc@example.com", ((MailboxAddress)message.Cc.Single()).Address);
|
||||
CollectionAssert.AreEquivalent(
|
||||
new[] { "bcc@example.com", "configured-bcc@example.com" },
|
||||
message.Bcc.Mailboxes.Select(address => address.Address).ToArray());
|
||||
Assert.AreEqual("Test subject", message.Subject);
|
||||
Assert.AreEqual("Test body", message.TextBody);
|
||||
Assert.IsNull(message.HtmlBody);
|
||||
Assert.That(((MailboxAddress)message.From.Single()).Address, Is.EqualTo("sender@example.com"));
|
||||
Assert.That(((MailboxAddress)message.To.Single()).Address, Is.EqualTo("to@example.com"));
|
||||
Assert.That(((MailboxAddress)message.Cc.Single()).Address, Is.EqualTo("cc@example.com"));
|
||||
Assert.That(
|
||||
message.Bcc.Mailboxes.Select(address => address.Address).ToArray(),
|
||||
Is.EquivalentTo(new[] { "bcc@example.com", "configured-bcc@example.com" }));
|
||||
Assert.That(message.Subject, Is.EqualTo("Test subject"));
|
||||
Assert.That(message.TextBody, Is.EqualTo("Test body"));
|
||||
Assert.That(message.HtmlBody, Is.Null);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void CreateMailMessage_PopulatesHtmlBody()
|
||||
{
|
||||
SaEmailData emailData = CreateEmailData();
|
||||
@@ -54,13 +54,13 @@ namespace Sarand.UnitTests.Standard.Base.Email
|
||||
|
||||
MimeMessage message = new TestEmailConsole().CreateMessage(emailData);
|
||||
|
||||
Assert.AreEqual("<p>Test body</p>", message.HtmlBody);
|
||||
Assert.IsNull(message.TextBody);
|
||||
Assert.That(message.HtmlBody, Is.EqualTo("<p>Test body</p>"));
|
||||
Assert.That(message.TextBody, Is.Null);
|
||||
}
|
||||
|
||||
// --- Attachments ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void CreateMailMessage_PopulatesAttachment()
|
||||
{
|
||||
SaEmailData emailData = CreateEmailData();
|
||||
@@ -73,13 +73,13 @@ namespace Sarand.UnitTests.Standard.Base.Email
|
||||
MimeMessage message = new TestEmailConsole().CreateMessage(emailData);
|
||||
MimePart attachment = (MimePart)message.Attachments.Single();
|
||||
|
||||
Assert.AreEqual("test.txt", attachment.FileName);
|
||||
Assert.AreEqual("text/plain", attachment.ContentType.MimeType);
|
||||
Assert.AreEqual(ContentDisposition.Attachment, attachment.ContentDisposition.Disposition);
|
||||
Assert.AreEqual(ContentEncoding.Base64, attachment.ContentTransferEncoding);
|
||||
Assert.That(attachment.FileName, Is.EqualTo("test.txt"));
|
||||
Assert.That(attachment.ContentType.MimeType, Is.EqualTo("text/plain"));
|
||||
Assert.That(attachment.ContentDisposition.Disposition, Is.EqualTo(ContentDisposition.Attachment));
|
||||
Assert.That(attachment.ContentTransferEncoding, Is.EqualTo(ContentEncoding.Base64));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void CreateMailMessage_UsesDefaultAttachmentFilename()
|
||||
{
|
||||
SaEmailData emailData = CreateEmailData();
|
||||
@@ -91,10 +91,10 @@ namespace Sarand.UnitTests.Standard.Base.Email
|
||||
MimeMessage message = new TestEmailConsole().CreateMessage(emailData);
|
||||
MimePart attachment = (MimePart)message.Attachments.Single();
|
||||
|
||||
Assert.AreEqual("Attachment_001.dat", attachment.FileName);
|
||||
Assert.That(attachment.FileName, Is.EqualTo("Attachment_001.dat"));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void CreateMailMessage_PopulatesInlineAttachment()
|
||||
{
|
||||
SaEmailData emailData = CreateEmailData();
|
||||
@@ -111,30 +111,30 @@ namespace Sarand.UnitTests.Standard.Base.Email
|
||||
MimeMessage message = new TestEmailConsole().CreateMessage(emailData);
|
||||
MimePart attachment = message.BodyParts.OfType<MimePart>().Single(part => part.ContentId == "test-image@example.com");
|
||||
|
||||
Assert.AreEqual("test.png", attachment.FileName);
|
||||
Assert.AreEqual(ContentDisposition.Inline, attachment.ContentDisposition.Disposition);
|
||||
Assert.AreEqual("<img src=\"cid:test-image@example.com\">", message.HtmlBody);
|
||||
Assert.That(attachment.FileName, Is.EqualTo("test.png"));
|
||||
Assert.That(attachment.ContentDisposition.Disposition, Is.EqualTo(ContentDisposition.Inline));
|
||||
Assert.That(message.HtmlBody, Is.EqualTo("<img src=\"cid:test-image@example.com\">"));
|
||||
}
|
||||
|
||||
// --- Formatting and Tag Tests ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DynamicEmailTags_AreMatchedAndReplacedCaseInsensitively()
|
||||
{
|
||||
SaEmailData emailData = CreateEmailData();
|
||||
emailData.MessageBody = "Before [#Test.Tag] after [#TEST.TAG].";
|
||||
|
||||
Assert.IsTrue(SaEmailConsole.EmailContainsTag(emailData, "[#test.tag]"));
|
||||
Assert.That(SaEmailConsole.EmailContainsTag(emailData, "[#test.tag]"), Is.True);
|
||||
|
||||
SaEmailConsole.ReplaceDynamicEmailTag(emailData, "[#test.tag]", "replacement");
|
||||
|
||||
Assert.AreEqual("Before replacement after replacement.", emailData.MessageBody);
|
||||
Assert.That(emailData.MessageBody, Is.EqualTo("Before replacement after replacement."));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void FormatAttachmentContentId_ReplacesAddressAndWhitespaceCharacters()
|
||||
{
|
||||
Assert.AreEqual("test_image_name@saxonite.com", SaEmailConsole.FormatAttachmentContentId("test @ image name"));
|
||||
Assert.That(SaEmailConsole.FormatAttachmentContentId("test @ image name"), Is.EqualTo("test_image_name@saxonite.com"));
|
||||
}
|
||||
|
||||
// --- Test Data ---
|
||||
|
||||
@@ -1,47 +1,47 @@
|
||||
using System.Drawing;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System.Drawing;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Generic
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class ObjectReferences_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void ObjectReferences_ChangeValuesOnReferencedObject ()
|
||||
{
|
||||
// size2 starts as a reference to size1.
|
||||
Size size1 = new Size(10, 20);
|
||||
Size size2 = size1;
|
||||
Size size3 = new Size(10, 20);
|
||||
Assert.AreEqual(size1, size2);
|
||||
Assert.AreEqual(size1, size3);
|
||||
Assert.AreEqual(size2, size3);
|
||||
Assert.That(size2, Is.EqualTo(size1));
|
||||
Assert.That(size3, Is.EqualTo(size1));
|
||||
Assert.That(size3, Is.EqualTo(size2));
|
||||
// Change size1 values - doesn't change size2.
|
||||
size1.Width = 100;
|
||||
size1.Height = 200;
|
||||
Assert.AreNotEqual(size1, size2);
|
||||
Assert.AreNotEqual(size1, size3);
|
||||
Assert.AreEqual(size2, size3);
|
||||
Assert.That(size2, Is.Not.EqualTo(size1));
|
||||
Assert.That(size3, Is.Not.EqualTo(size1));
|
||||
Assert.That(size3, Is.EqualTo(size2));
|
||||
}
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ObjectReferences_ChangeValuesOnObjectReference ()
|
||||
{
|
||||
// size2 starts as a reference to size1.
|
||||
Size size1 = new Size(10, 20);
|
||||
Size size2 = size1;
|
||||
Size size3 = new Size(10, 20);
|
||||
Assert.AreEqual(size1, size2);
|
||||
Assert.AreEqual(size1, size3);
|
||||
Assert.AreEqual(size2, size3);
|
||||
Assert.That(size2, Is.EqualTo(size1));
|
||||
Assert.That(size3, Is.EqualTo(size1));
|
||||
Assert.That(size3, Is.EqualTo(size2));
|
||||
// Change size2 values - doesn't change size1.
|
||||
size2.Width = 100;
|
||||
size2.Height = 200;
|
||||
Assert.AreNotEqual(size1, size2);
|
||||
Assert.AreEqual(size1, size3);
|
||||
Assert.AreNotEqual(size2, size3);
|
||||
Assert.That(size2, Is.Not.EqualTo(size1));
|
||||
Assert.That(size3, Is.EqualTo(size1));
|
||||
Assert.That(size3, Is.Not.EqualTo(size2));
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Modify class value.
|
||||
class TestData
|
||||
{
|
||||
@@ -50,37 +50,38 @@ namespace Sacs.UnitTests.Net.Standard.Base.Generic
|
||||
public Size size1 = new Size(10,20);
|
||||
public Size Size2 { get; set; } = new Size(30, 40);
|
||||
}
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ObjectReferences_ChangeClassValues ()
|
||||
{
|
||||
TestData td1 = new TestData();
|
||||
TestData td2 = td1;
|
||||
Assert.AreEqual(td1, td2);
|
||||
Assert.That(td2, Is.EqualTo(td1));
|
||||
td1.a++; // td2 is still a reference to td1 with the same values.
|
||||
Assert.AreEqual(td1, td2);
|
||||
Assert.AreEqual(td1.a, td2.a);
|
||||
Assert.AreEqual(td1.B, td2.B);
|
||||
Assert.AreEqual(td1.size1, td2.size1);
|
||||
Assert.AreEqual(td1.Size2, td2.Size2);
|
||||
Assert.That(td2, Is.EqualTo(td1));
|
||||
Assert.That(td2.a, Is.EqualTo(td1.a));
|
||||
Assert.That(td2.B, Is.EqualTo(td1.B));
|
||||
Assert.That(td2.size1, Is.EqualTo(td1.size1));
|
||||
Assert.That(td2.Size2, Is.EqualTo(td1.Size2));
|
||||
td1.B++; // td2 is still a reference to td1 with the same values.
|
||||
Assert.AreEqual(td1, td2);
|
||||
Assert.AreEqual(td1.a, td2.a);
|
||||
Assert.AreEqual(td1.B, td2.B);
|
||||
Assert.AreEqual(td1.size1, td2.size1);
|
||||
Assert.AreEqual(td1.Size2, td2.Size2);
|
||||
Assert.That(td2, Is.EqualTo(td1));
|
||||
Assert.That(td2.a, Is.EqualTo(td1.a));
|
||||
Assert.That(td2.B, Is.EqualTo(td1.B));
|
||||
Assert.That(td2.size1, Is.EqualTo(td1.size1));
|
||||
Assert.That(td2.Size2, Is.EqualTo(td1.Size2));
|
||||
td1.size1.Width += 10; // td2 is still a reference to td1 with the same values.
|
||||
Assert.AreEqual(td1, td2);
|
||||
Assert.AreEqual(td1.a, td2.a);
|
||||
Assert.AreEqual(td1.B, td2.B);
|
||||
Assert.AreEqual(td1.size1, td2.size1);
|
||||
Assert.AreEqual(td1.Size2, td2.Size2);
|
||||
Assert.That(td2, Is.EqualTo(td1));
|
||||
Assert.That(td2.a, Is.EqualTo(td1.a));
|
||||
Assert.That(td2.B, Is.EqualTo(td1.B));
|
||||
Assert.That(td2.size1, Is.EqualTo(td1.size1));
|
||||
Assert.That(td2.Size2, Is.EqualTo(td1.Size2));
|
||||
td1.Size2 = new Size(td1.Size2.Width, td1.Size2.Height + 10); // td2 is still a reference to td1 with the same values.
|
||||
Assert.AreEqual(td1, td2);
|
||||
Assert.AreEqual(td1.a, td2.a);
|
||||
Assert.AreEqual(td1.B, td2.B);
|
||||
Assert.AreEqual(td1.size1, td2.size1);
|
||||
Assert.AreEqual(td1.Size2, td2.Size2);
|
||||
Assert.That(td2, Is.EqualTo(td1));
|
||||
Assert.That(td2.a, Is.EqualTo(td1.a));
|
||||
Assert.That(td2.B, Is.EqualTo(td1.B));
|
||||
Assert.That(td2.size1, Is.EqualTo(td1.size1));
|
||||
Assert.That(td2.Size2, Is.EqualTo(td1.Size2));
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
// --- The End ---
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,58 +1,55 @@
|
||||
using System.Text.RegularExpressions;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System.Text.RegularExpressions;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Generic
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class Regex_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// --- Tests ---
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void Regex_FolderPaths()
|
||||
{
|
||||
Assert.AreEqual(true, Regex.IsMatch("abcabcabc\\.metadata\\.plugins\\abcabcabc", ".*?\\\\\\.metadata\\\\\\.plugins\\\\.*?"));
|
||||
Assert.That(Regex.IsMatch("abcabcabc\\.metadata\\.plugins\\abcabcabc", ".*?\\\\\\.metadata\\\\\\.plugins\\\\.*?"), Is.EqualTo(true));
|
||||
|
||||
// Path ends in.
|
||||
Assert.AreEqual(true, Regex.IsMatch("D:\\Home\\Data\\Logs\\App", "[\\\\/]app$", RegexOptions.IgnoreCase));
|
||||
Assert.AreEqual(true, Regex.IsMatch("/home/data/logs/app", "[\\\\/]app$", RegexOptions.IgnoreCase));
|
||||
Assert.That(Regex.IsMatch("D:\\Home\\Data\\Logs\\App", "[\\\\/]app$", RegexOptions.IgnoreCase), Is.EqualTo(true));
|
||||
Assert.That(Regex.IsMatch("/home/data/logs/app", "[\\\\/]app$", RegexOptions.IgnoreCase), Is.EqualTo(true));
|
||||
|
||||
// Path doesn't end in.
|
||||
Assert.AreEqual(false, Regex.IsMatch("D:\\Home\\Data\\Logs", "[\\\\/]app$", RegexOptions.IgnoreCase));
|
||||
Assert.AreEqual(false, Regex.IsMatch("/home/data/logs", "[\\\\/]app$", RegexOptions.IgnoreCase));
|
||||
Assert.That(Regex.IsMatch("D:\\Home\\Data\\Logs", "[\\\\/]app$", RegexOptions.IgnoreCase), Is.EqualTo(false));
|
||||
Assert.That(Regex.IsMatch("/home/data/logs", "[\\\\/]app$", RegexOptions.IgnoreCase), Is.EqualTo(false));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void Regex_IsMatch()
|
||||
{
|
||||
string input = "abcdefghi";
|
||||
|
||||
Assert.AreEqual(true, Regex.IsMatch(input, "a"));
|
||||
Assert.AreEqual(true, Regex.IsMatch(input, "^a"));
|
||||
Assert.AreEqual(true, Regex.IsMatch(input, "d"));
|
||||
Assert.AreEqual(true, Regex.IsMatch(input, "i$"));
|
||||
Assert.That(Regex.IsMatch(input, "a"), Is.EqualTo(true));
|
||||
Assert.That(Regex.IsMatch(input, "^a"), Is.EqualTo(true));
|
||||
Assert.That(Regex.IsMatch(input, "d"), Is.EqualTo(true));
|
||||
Assert.That(Regex.IsMatch(input, "i$"), Is.EqualTo(true));
|
||||
|
||||
// Combination characters.
|
||||
Assert.AreEqual(true, Regex.IsMatch(input, "[adg]"));
|
||||
Assert.AreEqual(true, Regex.IsMatch(input, "[cba]"));
|
||||
Assert.That(Regex.IsMatch(input, "[adg]"), Is.EqualTo(true));
|
||||
Assert.That(Regex.IsMatch(input, "[cba]"), Is.EqualTo(true));
|
||||
|
||||
// Blank matches input.
|
||||
Assert.AreEqual(true, Regex.IsMatch(input, ""));
|
||||
Assert.That(Regex.IsMatch(input, ""), Is.EqualTo(true));
|
||||
|
||||
// Characters at incorrect position.
|
||||
Assert.AreEqual(false, Regex.IsMatch(input, "a$"));
|
||||
Assert.AreEqual(false, Regex.IsMatch(input, "^d"));
|
||||
Assert.AreEqual(false, Regex.IsMatch(input, "d$"));
|
||||
Assert.AreEqual(false, Regex.IsMatch(input, "^i"));
|
||||
Assert.That(Regex.IsMatch(input, "a$"), Is.EqualTo(false));
|
||||
Assert.That(Regex.IsMatch(input, "^d"), Is.EqualTo(false));
|
||||
Assert.That(Regex.IsMatch(input, "d$"), Is.EqualTo(false));
|
||||
Assert.That(Regex.IsMatch(input, "^i"), Is.EqualTo(false));
|
||||
|
||||
// Incorrect characters.
|
||||
Assert.AreEqual(false, Regex.IsMatch(input, "j"));
|
||||
Assert.AreEqual(false, Regex.IsMatch(input, " "));
|
||||
Assert.That(Regex.IsMatch(input, "j"), Is.EqualTo(false));
|
||||
Assert.That(Regex.IsMatch(input, " "), Is.EqualTo(false));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Helpers;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Helpers
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SacsCsvHelper_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// C o n v e r t F r o m C S V
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- CSV Parsing ---
|
||||
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void ParseCsv_Data ()
|
||||
{
|
||||
List<String> data = new List<string>()
|
||||
@@ -48,23 +48,22 @@ namespace Sacs.UnitTests.Net.Standard.Base.Helpers
|
||||
{
|
||||
List<String[]> records = SacsCsvHelper.ParseCsv(data.Concat(Environment.NewLine), parserConfig);
|
||||
|
||||
Assert.IsNotNull(records);
|
||||
Assert.That(records, Is.Not.Null);
|
||||
// Record count.
|
||||
Assert.AreEqual(data.Count, records.Count);
|
||||
Assert.That(records.Count, Is.EqualTo(data.Count));
|
||||
// Field counts.
|
||||
Assert.AreEqual(3, records[0].Length);
|
||||
Assert.AreEqual(6, records[1].Length);
|
||||
Assert.AreEqual(4, records[2].Length);
|
||||
Assert.That(records[0].Length, Is.EqualTo(3));
|
||||
Assert.That(records[1].Length, Is.EqualTo(6));
|
||||
Assert.That(records[2].Length, Is.EqualTo(4));
|
||||
// Field values.
|
||||
Assert.AreEqual("B", records[0][1]);
|
||||
Assert.AreEqual("E", records[1][1]);
|
||||
Assert.AreEqual("\"G\"", records[1][3]);
|
||||
Assert.AreEqual("I,", records[1][5]);
|
||||
Assert.AreEqual("X", records[2][1]);
|
||||
Assert.That(records[0][1], Is.EqualTo("B"));
|
||||
Assert.That(records[1][1], Is.EqualTo("E"));
|
||||
Assert.That(records[1][3], Is.EqualTo("\"G\""));
|
||||
Assert.That(records[1][5], Is.EqualTo("I,"));
|
||||
Assert.That(records[2][1], Is.EqualTo("X"));
|
||||
}
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ParseCsv_Data_InvalidQuotes ()
|
||||
{
|
||||
List<String> data = new List<string>()
|
||||
@@ -76,35 +75,32 @@ namespace Sacs.UnitTests.Net.Standard.Base.Helpers
|
||||
SacsCsvHelper.ParserConfig config = new SacsCsvHelper.ParserConfig();
|
||||
List<String[]> records = SacsCsvHelper.ParseCsv(data.Concat(Environment.NewLine));
|
||||
|
||||
Assert.IsNotNull(records);
|
||||
Assert.That(records, Is.Not.Null);
|
||||
// 1 invalid record ignored.
|
||||
Assert.AreEqual(data.Count - 1, records.Count);
|
||||
Assert.That(records.Count, Is.EqualTo(data.Count - 1));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o n v e r t T o C S V
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- CSV Formatting ---
|
||||
[Test]
|
||||
public void ToCsv_Fields ()
|
||||
{
|
||||
//SaCsvHelper csvHelper = new SaCsvHelper();
|
||||
|
||||
// Single record, alternative collections.
|
||||
Assert.AreEqual("A,B,C", SacsCsvHelper.ToCsv(new String[] { "A", "B", "C" }));
|
||||
Assert.AreEqual("A,B,C", SacsCsvHelper.ToCsv(new Collection<String>() { "A", "B", "C" }));
|
||||
Assert.AreEqual("A,B,C", SacsCsvHelper.ToCsv(new List<String>() { "A", "B", "C" }));
|
||||
Assert.AreEqual("D,E,F", SacsCsvHelper.ToCsv(new String[] { "D", "E", "F" }));
|
||||
Assert.That(SacsCsvHelper.ToCsv(new String[] { "A", "B", "C" }), Is.EqualTo("A,B,C"));
|
||||
Assert.That(SacsCsvHelper.ToCsv(new Collection<String>() { "A", "B", "C" }), Is.EqualTo("A,B,C"));
|
||||
Assert.That(SacsCsvHelper.ToCsv(new List<String>() { "A", "B", "C" }), Is.EqualTo("A,B,C"));
|
||||
Assert.That(SacsCsvHelper.ToCsv(new String[] { "D", "E", "F" }), Is.EqualTo("D,E,F"));
|
||||
|
||||
// Embedded delimiter.
|
||||
Assert.AreEqual("\"A,\",B,C", SacsCsvHelper.ToCsv(new String[] { "A,", "B", "C" }));
|
||||
Assert.AreEqual("A,\",B\",C", SacsCsvHelper.ToCsv(new String[] { "A", ",B", "C" }));
|
||||
Assert.That(SacsCsvHelper.ToCsv(new String[] { "A,", "B", "C" }), Is.EqualTo("\"A,\",B,C"));
|
||||
Assert.That(SacsCsvHelper.ToCsv(new String[] { "A", ",B", "C" }), Is.EqualTo("A,\",B\",C"));
|
||||
|
||||
// Embedded quotes.
|
||||
Assert.AreEqual("\"\"\"A\"\"\",B,C", SacsCsvHelper.ToCsv(new String[] { "\"A\"", "B", "C" }));
|
||||
Assert.That(SacsCsvHelper.ToCsv(new String[] { "\"A\"", "B", "C" }), Is.EqualTo("\"\"\"A\"\"\",B,C"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ToCsv_Records ()
|
||||
{
|
||||
//SaCsvHelper csvHelper = new SaCsvHelper();
|
||||
@@ -120,14 +116,13 @@ namespace Sacs.UnitTests.Net.Standard.Base.Helpers
|
||||
// Multiple records, multiple times to verify clearing of data each time.
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
Assert.AreEqual(3, records.Count);
|
||||
Assert.AreEqual("A,B,C", records[0]);
|
||||
Assert.AreEqual("D,E,F,G,H,I", records[1]);
|
||||
Assert.AreEqual("W,X,Y,Z", records[2]);
|
||||
Assert.That(records.Count, Is.EqualTo(3));
|
||||
Assert.That(records[0], Is.EqualTo("A,B,C"));
|
||||
Assert.That(records[1], Is.EqualTo("D,E,F,G,H,I"));
|
||||
Assert.That(records[2], Is.EqualTo("W,X,Y,Z"));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Helpers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -6,105 +6,100 @@ using System.Text;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Helpers
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SacsDataValidationHelper_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Email addresses.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void IsValidEmailAddress()
|
||||
{
|
||||
// Valid addresses.
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidEmailAddress("joe@bloggs.com"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidEmailAddress("joe@bloggs.xx"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidEmailAddress("joe@bloggs.co.uk"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidEmailAddress("jb@bloggs.co.uk"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidEmailAddress("joe.bloggs@bloggs.co.uk"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidEmailAddress("joe-bloggs@bloggs.co.uk"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidEmailAddress("joe_bloggs@bloggs.co.uk"));
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress("joe@bloggs.com"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress("joe@bloggs.xx"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress("joe@bloggs.co.uk"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress("jb@bloggs.co.uk"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress("joe.bloggs@bloggs.co.uk"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress("joe-bloggs@bloggs.co.uk"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress("joe_bloggs@bloggs.co.uk"), Is.True);
|
||||
|
||||
// Invalid addresses.
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidEmailAddress(null));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidEmailAddress(""));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidEmailAddress(" "));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidEmailAddress("joe"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidEmailAddress("joe.bloggs.com"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidEmailAddress("joe@bloggs"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidEmailAddress("joe@blo ggs.com"));
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress(null), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress(""), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress(" "), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress("joe"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress("joe.bloggs.com"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress("joe@bloggs"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidEmailAddress("joe@blo ggs.com"), Is.False);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// URLs.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void IsValidUrl()
|
||||
{
|
||||
// Valid addresses.
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidUrl("http://joe.bloggs"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidUrl("https://joe.bloggs"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidUrl("//joe.bloggs"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidUrl("joe.bloggs"));
|
||||
Assert.That(SacsDataValidationHelper.IsValidUrl("http://joe.bloggs"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidUrl("https://joe.bloggs"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidUrl("//joe.bloggs"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidUrl("joe.bloggs"), Is.True);
|
||||
|
||||
// Invalid addresses.
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidUrl(null));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidUrl(""));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidUrl(" "));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidUrl("joe"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidUrl("joe@bloggs.com"));
|
||||
Assert.That(SacsDataValidationHelper.IsValidUrl(null), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidUrl(""), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidUrl(" "), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidUrl("joe"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidUrl("joe@bloggs.com"), Is.False);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void IsValidWikipediaUrl()
|
||||
{
|
||||
// Valid addresses.
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidWikipediaUrl("en.wikipedia.org/wiki/etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidWikipediaUrl("//en.wikipedia.org/wiki/etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidWikipediaUrl("https://en.wikipedia.org/wiki/etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidWikipediaUrl("en.wikipedia.org/w/index.php?etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidWikipediaUrl("//en.wikipedia.org/w/index.php?etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidWikipediaUrl("https://en.wikipedia.org/w/index.php?etc"));
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl("en.wikipedia.org/wiki/etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl("//en.wikipedia.org/wiki/etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl("https://en.wikipedia.org/wiki/etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl("en.wikipedia.org/w/index.php?etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl("//en.wikipedia.org/w/index.php?etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl("https://en.wikipedia.org/w/index.php?etc"), Is.True);
|
||||
|
||||
// Invalid addresses.
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidWikipediaUrl(null));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidWikipediaUrl(""));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidWikipediaUrl(" "));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidWikipediaUrl("http://en.wikipedia.org/wiki/"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidWikipediaUrl("http://en.wikipedia.org/w/index.php"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidWikipediaUrl("htps://www.bbc.co.uk"));
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl(null), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl(""), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl(" "), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl("http://en.wikipedia.org/wiki/"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl("http://en.wikipedia.org/w/index.php"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidWikipediaUrl("htps://www.bbc.co.uk"), Is.False);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void IsValidLinkedInUrl()
|
||||
{
|
||||
// Valid addresses.
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidLinkedInUrl("www.linkedin.com/in/etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidLinkedInUrl("//www.linkedin.com/in/etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidLinkedInUrl("https://www.linkedin.com/in/etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidLinkedInUrl("en.linkedin.com/in/etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidLinkedInUrl("//en.linkedin.com/in/etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidLinkedInUrl("https://en.linkedin.com/in/etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidLinkedInUrl("xx.linkedin.com/in/etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidLinkedInUrl("//xx.linkedin.com/in/etc"));
|
||||
Assert.IsTrue(SacsDataValidationHelper.IsValidLinkedInUrl("https://xx.linkedin.com/in/etc"));
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("www.linkedin.com/in/etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("//www.linkedin.com/in/etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("https://www.linkedin.com/in/etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("en.linkedin.com/in/etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("//en.linkedin.com/in/etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("https://en.linkedin.com/in/etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("xx.linkedin.com/in/etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("//xx.linkedin.com/in/etc"), Is.True);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("https://xx.linkedin.com/in/etc"), Is.True);
|
||||
|
||||
// Invalid addresses.
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidLinkedInUrl(null));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidLinkedInUrl(""));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidLinkedInUrl(" "));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidLinkedInUrl("http://www.linkedin.com/in/"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidLinkedInUrl("http://xx.linkedin.com/in/"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidLinkedInUrl("http://xx.linkedin.com/in/"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidLinkedInUrl("linkedin.com/in/"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidLinkedInUrl("x.linkedin.com/in/"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidLinkedInUrl("xxx.linkedin.com/in/"));
|
||||
Assert.IsFalse(SacsDataValidationHelper.IsValidLinkedInUrl("htps://www.bbc.co.uk"));
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl(null), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl(""), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl(" "), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("http://www.linkedin.com/in/"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("http://xx.linkedin.com/in/"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("http://xx.linkedin.com/in/"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("linkedin.com/in/"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("x.linkedin.com/in/"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("xxx.linkedin.com/in/"), Is.False);
|
||||
Assert.That(SacsDataValidationHelper.IsValidLinkedInUrl("htps://www.bbc.co.uk"), Is.False);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Helpers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -7,24 +7,24 @@ using System.Text;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Helpers
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SacsRandomHelper_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Random Helper.
|
||||
//-------------------------------------------------------------------
|
||||
// Fill byte array.
|
||||
[TestMethod]
|
||||
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void Fill_ByteArray()
|
||||
{
|
||||
int dataLength = 10;
|
||||
byte[] data = new byte[dataLength];
|
||||
Assert.IsNotNull(data);
|
||||
Assert.That(data, Is.Not.Null);
|
||||
|
||||
// Initial values should be zero.
|
||||
for (int i = 0; i < dataLength; i++)
|
||||
Assert.AreEqual(0, data[i]);
|
||||
Assert.That(data[i], Is.EqualTo(0));
|
||||
|
||||
SacsRandomHelper.Fill(data);
|
||||
|
||||
@@ -32,24 +32,22 @@ namespace Sacs.UnitTests.Net.Standard.Base.Helpers
|
||||
int total = 0;
|
||||
for (int i = 0; i < dataLength; i++)
|
||||
total += data[i];
|
||||
Assert.AreNotEqual(0, total);
|
||||
Assert.That(total, Is.Not.EqualTo(0));
|
||||
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void GetInt32_ToExclusive()
|
||||
{
|
||||
for (int i = 1; i < 1000; i++)
|
||||
{
|
||||
int value = SacsRandomHelper.GetInt32(i);
|
||||
Assert.IsTrue(value >= 0);
|
||||
Assert.IsTrue(value < i);
|
||||
Assert.That(value >= 0, Is.True);
|
||||
Assert.That(value < i, Is.True);
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void GetInt32_FromInclusive_ToExclusive()
|
||||
{
|
||||
for (int i = -100; i < 101; i++)
|
||||
@@ -58,14 +56,13 @@ namespace Sacs.UnitTests.Net.Standard.Base.Helpers
|
||||
{
|
||||
int value = SacsRandomHelper.GetInt32(i, j);
|
||||
//Debug.WriteLine("Value: "+value);
|
||||
Assert.IsTrue(value >= i);
|
||||
Assert.IsTrue(value < j);
|
||||
Assert.That(value >= i, Is.True);
|
||||
Assert.That(value < j, Is.True);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void GetInt32_getRandomLengthNumber()
|
||||
{
|
||||
for (ushort i = 1; i < 13; i++)
|
||||
@@ -74,13 +71,12 @@ namespace Sacs.UnitTests.Net.Standard.Base.Helpers
|
||||
{
|
||||
String value = SacsRandomHelper.GetRandomLengthNumber(i);
|
||||
//Debug.WriteLine("Value: " + value);
|
||||
Assert.IsTrue(value.Length > 0);
|
||||
Assert.IsTrue(value.Length < i + 1);
|
||||
Assert.That(value.Length > 0, Is.True);
|
||||
Assert.That(value.Length < i + 1, Is.True);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Procs;
|
||||
using Sarand.Net.Standard.Base.Tasks;
|
||||
using System;
|
||||
@@ -8,11 +8,11 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Procs
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SaProcess_Base_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// --- Definitions ---
|
||||
|
||||
private class TestProcessConfig : SaProcess_Base.Config
|
||||
{
|
||||
public TestProcessConfig()
|
||||
@@ -22,7 +22,6 @@ namespace Sacs.UnitTests.Net.Standard.Base.Procs
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private class TestProcess : SaProcess_Base
|
||||
{
|
||||
public TestProcess(bool stopOnCancellation) : base(new TestProcessConfig())
|
||||
@@ -51,120 +50,119 @@ namespace Sacs.UnitTests.Net.Standard.Base.Procs
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public async Task RunAsync_CompletesAndClearsAsyncState()
|
||||
{
|
||||
using (TestProcess process = new TestProcess(false))
|
||||
{
|
||||
Task runTask = process.RunAsync();
|
||||
Assert.IsTrue(process.Started.Wait(1000), "Process did not start.");
|
||||
Assert.IsTrue(process.IsAsync);
|
||||
Assert.That(process.Started.Wait(1000), Is.True, "Process did not start.");
|
||||
Assert.That(process.IsAsync, Is.True);
|
||||
|
||||
process.Release.Set();
|
||||
await runTask;
|
||||
|
||||
Assert.IsFalse(process.IsAsync);
|
||||
Assert.IsFalse(process.Processing);
|
||||
Assert.IsTrue(process.ProcessEnded);
|
||||
Assert.That(process.IsAsync, Is.False);
|
||||
Assert.That(process.Processing, Is.False);
|
||||
Assert.That(process.ProcessEnded, Is.True);
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public async Task RunAsync_RejectsOverlappingRun()
|
||||
{
|
||||
using (TestProcess process = new TestProcess(false))
|
||||
{
|
||||
Task runTask = process.RunAsync();
|
||||
Assert.IsTrue(process.Started.Wait(1000), "Process did not start.");
|
||||
Assert.That(process.Started.Wait(1000), Is.True, "Process did not start.");
|
||||
|
||||
await Assert.ThrowsExactlyAsync<SaProcess_Base.InProgressException>(() => process.RunAsync());
|
||||
Assert.ThrowsAsync<SaProcess_Base.InProgressException>(() => process.RunAsync());
|
||||
|
||||
process.Release.Set();
|
||||
await runTask;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public async Task StopProcessAsync_TimeoutRetainsAsyncState()
|
||||
{
|
||||
using (TestProcess process = new TestProcess(false))
|
||||
{
|
||||
Task runTask = process.RunAsync();
|
||||
Assert.IsTrue(process.Started.Wait(1000), "Process did not start.");
|
||||
Assert.That(process.Started.Wait(1000), Is.True, "Process did not start.");
|
||||
|
||||
Assert.IsFalse(await process.StopProcessAsync(40));
|
||||
Assert.IsTrue(process.IsAsync, "A timed-out stop must retain the active process state.");
|
||||
await Assert.ThrowsExactlyAsync<SaProcess_Base.InProgressException>(() => process.RunAsync());
|
||||
Assert.That(await process.StopProcessAsync(40), Is.False);
|
||||
Assert.That(process.IsAsync, Is.True, "A timed-out stop must retain the active process state.");
|
||||
Assert.ThrowsAsync<SaProcess_Base.InProgressException>(() => process.RunAsync());
|
||||
|
||||
process.Release.Set();
|
||||
await runTask;
|
||||
Assert.IsFalse(process.IsAsync);
|
||||
Assert.That(process.IsAsync, Is.False);
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public async Task StopProcessAsync_CooperativeCancellationStopsProcess()
|
||||
{
|
||||
using (TestProcess process = new TestProcess(true))
|
||||
{
|
||||
Task runTask = process.RunAsync();
|
||||
Assert.IsTrue(process.Started.Wait(1000), "Process did not start.");
|
||||
Assert.That(process.Started.Wait(1000), Is.True, "Process did not start.");
|
||||
|
||||
Assert.IsTrue(await process.StopProcessAsync(1000));
|
||||
Assert.That(await process.StopProcessAsync(1000), Is.True);
|
||||
await runTask;
|
||||
|
||||
Assert.IsTrue(process.CancellationObserved);
|
||||
Assert.IsFalse(process.IsAsync);
|
||||
Assert.IsTrue(await process.StopProcessAsync(20), "Stopping an idle process should succeed.");
|
||||
Assert.That(process.CancellationObserved, Is.True);
|
||||
Assert.That(process.IsAsync, Is.False);
|
||||
Assert.That(await process.StopProcessAsync(20), Is.True, "Stopping an idle process should succeed.");
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public async Task StopProcessAsync_CancellationCallbackCanReadAsyncState()
|
||||
{
|
||||
using (TestProcess process = new TestProcess(true))
|
||||
{
|
||||
Task runTask = process.RunAsync();
|
||||
Assert.IsTrue(process.Started.Wait(1000), "Process did not start.");
|
||||
Assert.That(process.Started.Wait(1000), Is.True, "Process did not start.");
|
||||
|
||||
CancellationToken cancellationToken = GetCancellationToken(process);
|
||||
bool callbackInvoked = false;
|
||||
using (cancellationToken.Register(() =>
|
||||
{
|
||||
callbackInvoked = true;
|
||||
Assert.IsTrue(process.IsAsync);
|
||||
Assert.That(process.IsAsync, Is.True);
|
||||
}))
|
||||
{
|
||||
Task<bool> stopTask = process.StopProcessAsync(1000);
|
||||
Task completedTask = await Task.WhenAny(stopTask, Task.Delay(2000));
|
||||
Assert.AreSame(stopTask, completedTask, "Cancellation callback deadlocked on the lifecycle lock.");
|
||||
Assert.IsTrue(await stopTask);
|
||||
Assert.That(completedTask, Is.SameAs(stopTask), "Cancellation callback deadlocked on the lifecycle lock.");
|
||||
Assert.That(await stopTask, Is.True);
|
||||
}
|
||||
|
||||
await runTask;
|
||||
Assert.IsTrue(callbackInvoked);
|
||||
Assert.That(callbackInvoked, Is.True);
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- Utilities ---
|
||||
|
||||
private static CancellationToken GetCancellationToken(SaProcess_Base process)
|
||||
{
|
||||
PropertyInfo controlProperty = typeof(SaProcess_Base).GetProperty("Control", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
Assert.IsNotNull(controlProperty);
|
||||
Assert.That(controlProperty, Is.Not.Null);
|
||||
Object control = controlProperty.GetValue(process);
|
||||
Assert.IsNotNull(control);
|
||||
Assert.That(control, Is.Not.Null);
|
||||
|
||||
PropertyInfo taskDataProperty = control.GetType().GetProperty("TaskData", BindingFlags.Instance | BindingFlags.Public);
|
||||
Assert.IsNotNull(taskDataProperty);
|
||||
Assert.That(taskDataProperty, Is.Not.Null);
|
||||
SacsTaskData taskData = (SacsTaskData)taskDataProperty.GetValue(control);
|
||||
Assert.IsNotNull(taskData);
|
||||
Assert.That(taskData, Is.Not.Null);
|
||||
return taskData.CancellationToken;
|
||||
}
|
||||
|
||||
// --- The End ---
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -1,56 +1,53 @@
|
||||
using System;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
|
||||
namespace Sarand.UnitTests.Core.Base.Utils
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class DateUtil_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// --- Data Members ---
|
||||
|
||||
private Random random = new Random();
|
||||
private DateTime today = DateTime.Today;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void DateTime_CTR_Void ()
|
||||
{
|
||||
Assert.IsNotNull(new DateTime());
|
||||
Assert.AreEqual(new DateTime(), DateTime.MinValue);
|
||||
Assert.That(DateTime.MinValue, Is.EqualTo(new DateTime()));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// S e t T i m e
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Time Assignment ---
|
||||
|
||||
[Test]
|
||||
public void SetTime_DateTime ()
|
||||
{
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
DateTime date = new DateTime(random.Next(1970, 2100), random.Next(1, 13), random.Next(1, 28), random.Next(0, 24), random.Next(0, 60), random.Next(0, 60));
|
||||
DateTime time = new DateTime(random.Next(1970, 2100), random.Next(1, 13), random.Next(1, 28), random.Next(0, 24), random.Next(0, 60), random.Next(0, 60));
|
||||
Assert.AreEqual(DateUtil.FormatXmlDate(date), DateUtil.FormatXmlDate(date.SetTime(time)));
|
||||
Assert.AreEqual(DateUtil.FormatXmlTime(time), DateUtil.FormatXmlTime(date.SetTime(time)));
|
||||
Assert.That(DateUtil.FormatXmlDate(date.SetTime(time)), Is.EqualTo(DateUtil.FormatXmlDate(date)));
|
||||
Assert.That(DateUtil.FormatXmlTime(date.SetTime(time)), Is.EqualTo(DateUtil.FormatXmlTime(time)));
|
||||
}
|
||||
}
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SetTime_TimeSpan ()
|
||||
{
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
DateTime date = new DateTime(random.Next(1970, 2100), random.Next(1, 13), random.Next(1, 28), random.Next(0, 24), random.Next(0, 60), random.Next(0, 60));
|
||||
TimeSpan time = new TimeSpan(random.Next(0, 24), random.Next(0, 60), random.Next(0, 60));
|
||||
Assert.AreEqual(DateUtil.FormatXmlDate(date), DateUtil.FormatXmlDate(date.SetTime(time)));
|
||||
Assert.AreEqual(DateUtil.FormatXmlTime(today + time), DateUtil.FormatXmlTime(date.SetTime(time)));
|
||||
Assert.That(DateUtil.FormatXmlDate(date.SetTime(time)), Is.EqualTo(DateUtil.FormatXmlDate(date)));
|
||||
Assert.That(DateUtil.FormatXmlTime(date.SetTime(time)), Is.EqualTo(DateUtil.FormatXmlTime(today + time)));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// R o u n d T i m e
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Time Rounding ---
|
||||
|
||||
[Test]
|
||||
public void RoundTime ()
|
||||
{
|
||||
for (int i = 0; i < 2000; i++)
|
||||
@@ -62,28 +59,28 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
int expectedMins = ((datetime.Minute / intervalMins) + (datetime.Minute % intervalMins > 0 ? 1 : 0)) * intervalMins;
|
||||
DateTime expected = datetime.Date + new TimeSpan(datetime.Hour,expectedMins,0);
|
||||
DateTime rounded = DateUtil.RoundTime(datetime,intervalMins,DateUtil.RoundingDirection.Up,true);
|
||||
Assert.AreEqual(DateUtil.FormatXmlDateTime(expected), DateUtil.FormatXmlDateTime(rounded));
|
||||
Assert.That(DateUtil.FormatXmlDateTime(rounded), Is.EqualTo(DateUtil.FormatXmlDateTime(expected)));
|
||||
}
|
||||
{
|
||||
// Round up with seconds.
|
||||
int expectedMins = ((datetime.Minute / intervalMins) + ((datetime.Minute * 60 + datetime.Second) % (intervalMins * 60) > 0 ? 1 : 0)) * intervalMins;
|
||||
DateTime expected = datetime.Date + new TimeSpan(datetime.Hour,expectedMins,0);
|
||||
DateTime rounded = DateUtil.RoundTime(datetime,intervalMins,DateUtil.RoundingDirection.Up,false);
|
||||
Assert.AreEqual(DateUtil.FormatXmlDateTime(expected), DateUtil.FormatXmlDateTime(rounded));
|
||||
Assert.That(DateUtil.FormatXmlDateTime(rounded), Is.EqualTo(DateUtil.FormatXmlDateTime(expected)));
|
||||
}
|
||||
{
|
||||
// Round down without seconds.
|
||||
int expectedMins = (datetime.Minute / intervalMins) * intervalMins;
|
||||
DateTime expected = datetime.Date + new TimeSpan(datetime.Hour,expectedMins,0);
|
||||
DateTime rounded = DateUtil.RoundTime(datetime,intervalMins,DateUtil.RoundingDirection.Down,true);
|
||||
Assert.AreEqual(DateUtil.FormatXmlDateTime(expected), DateUtil.FormatXmlDateTime(rounded));
|
||||
Assert.That(DateUtil.FormatXmlDateTime(rounded), Is.EqualTo(DateUtil.FormatXmlDateTime(expected)));
|
||||
}
|
||||
{
|
||||
// Round down with seconds.
|
||||
int expectedMins = (datetime.Minute / intervalMins) * intervalMins;
|
||||
DateTime expected = datetime.Date + new TimeSpan(datetime.Hour,expectedMins,0);
|
||||
DateTime rounded = DateUtil.RoundTime(datetime,intervalMins,DateUtil.RoundingDirection.Down,false);
|
||||
Assert.AreEqual(DateUtil.FormatXmlDateTime(expected), DateUtil.FormatXmlDateTime(rounded));
|
||||
Assert.That(DateUtil.FormatXmlDateTime(rounded), Is.EqualTo(DateUtil.FormatXmlDateTime(expected)));
|
||||
}
|
||||
{
|
||||
// Nearest without seconds.
|
||||
@@ -94,7 +91,7 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
{
|
||||
//String s = "";
|
||||
}
|
||||
Assert.AreEqual(DateUtil.FormatXmlDateTime(expected), DateUtil.FormatXmlDateTime(rounded));
|
||||
Assert.That(DateUtil.FormatXmlDateTime(rounded), Is.EqualTo(DateUtil.FormatXmlDateTime(expected)));
|
||||
}
|
||||
{
|
||||
// Nearest with seconds.
|
||||
@@ -105,62 +102,57 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
{
|
||||
//String s = "";
|
||||
}
|
||||
Assert.AreEqual(DateUtil.FormatXmlDateTime(expected), DateUtil.FormatXmlDateTime(rounded));
|
||||
Assert.That(DateUtil.FormatXmlDateTime(rounded), Is.EqualTo(DateUtil.FormatXmlDateTime(expected)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o n v e r t F r o m S t r i n g
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Parsing ---
|
||||
|
||||
[Test]
|
||||
public void DateTime_ParseXmlDate ()
|
||||
{
|
||||
String xmlDate = "2015-05-28";
|
||||
Assert.AreEqual(new DateTime(2015, 5, 28), DateUtil.ParseXmlDate(xmlDate));
|
||||
Assert.That(DateUtil.ParseXmlDate(xmlDate), Is.EqualTo(new DateTime(2015, 5, 28)));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DateTime_ParseXmlTime ()
|
||||
{
|
||||
String xmlTime = "16:25:57";
|
||||
Assert.AreEqual(new DateTime(today.Year, today.Month, today.Day, 16, 25, 57), DateUtil.ParseXmlTime(xmlTime));
|
||||
Assert.That(DateUtil.ParseXmlTime(xmlTime), Is.EqualTo(new DateTime(today.Year, today.Month, today.Day, 16, 25, 57)));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DateTime_ParseXmlDateTime ()
|
||||
{
|
||||
String xmlDateTime = "2010-05-28T17:05:01";
|
||||
Assert.AreEqual(new DateTime(2010, 5, 28, 17, 5, 1), DateUtil.ParseXmlDateTime(xmlDateTime));
|
||||
Assert.That(DateUtil.ParseXmlDateTime(xmlDateTime), Is.EqualTo(new DateTime(2010, 5, 28, 17, 5, 1)));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// V a l i d a t i o n
|
||||
//-------------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Validation ---
|
||||
|
||||
[Test]
|
||||
public void DateTime_IsValid ()
|
||||
{
|
||||
// Valid.
|
||||
Assert.AreEqual(true, DateUtil.IsValid(DateTime.Now));
|
||||
Assert.AreEqual(true, DateUtil.IsValid(DateTime.Today));
|
||||
Assert.AreEqual(true, DateUtil.IsValid(new DateTime(2018, 2, 12, 10, 32, 56)));
|
||||
Assert.That(DateUtil.IsValid(DateTime.Now), Is.EqualTo(true));
|
||||
Assert.That(DateUtil.IsValid(DateTime.Today), Is.EqualTo(true));
|
||||
Assert.That(DateUtil.IsValid(new DateTime(2018, 2, 12, 10, 32, 56)), Is.EqualTo(true));
|
||||
|
||||
// Invalid.
|
||||
Assert.AreEqual(false, DateUtil.IsValid(DateTime.MinValue));
|
||||
Assert.AreEqual(false, DateUtil.IsValid(DateTime.MaxValue));
|
||||
Assert.AreEqual(false, DateUtil.IsValid(new DateTime(0)));
|
||||
Assert.AreEqual(false, DateUtil.IsValid(new DateTime(1, 1, 1)));
|
||||
Assert.That(DateUtil.IsValid(DateTime.MinValue), Is.EqualTo(false));
|
||||
Assert.That(DateUtil.IsValid(DateTime.MaxValue), Is.EqualTo(false));
|
||||
Assert.That(DateUtil.IsValid(new DateTime(0)), Is.EqualTo(false));
|
||||
Assert.That(DateUtil.IsValid(new DateTime(1, 1, 1)), Is.EqualTo(false));
|
||||
|
||||
// Nullable.
|
||||
Assert.AreEqual(false, DateUtil.IsValid(null));
|
||||
Assert.That(DateUtil.IsValid(null), Is.EqualTo(false));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Relative dates - Week.
|
||||
// DateUtil.StartOfWeek
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DateTime_StartOfWeek ()
|
||||
{
|
||||
for (int i = 0; i < 1000; i++)
|
||||
@@ -168,11 +160,11 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
// Random date between 0AD and 3000AD (or thereabouts):
|
||||
DateTime date = new DateTime(random.Next(0, 365 * 3000) * TimeSpan.TicksPerDay);
|
||||
//Trace.WriteLine("DateUtil_Tester.DateTime_StartOfWeek Date=" + date.Format("ddd d-MMM-yyyy") + ", Start of week=" + date.StartOfWeek().Format("ddd d-MMM-yyyy"));
|
||||
Assert.AreEqual("Sun", date.StartOfWeek().Format("ddd"));
|
||||
Assert.That(date.StartOfWeek().Format("ddd"), Is.EqualTo("Sun"));
|
||||
}
|
||||
}
|
||||
// DateUtil.StartOfWeek
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DateTime_StartOfWorkingWeek ()
|
||||
{
|
||||
for (int i = 0; i < 1000; i++)
|
||||
@@ -180,80 +172,74 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
// Random date between 0AD and 3000AD (or thereabouts):
|
||||
DateTime date = new DateTime(random.Next(0, 365 * 3000) * TimeSpan.TicksPerDay);
|
||||
//Trace.WriteLine("DateUtil_Tester.DateTime_StartOfWorkingWeek Date=" + date.Format("ddd d-MMM-yyyy") + ", Start of week=" + date.StartOfWorkingWeek().Format("ddd d-MMM-yyyy"));
|
||||
Assert.AreEqual("Mon", date.StartOfWorkingWeek().Format("ddd"));
|
||||
Assert.That(date.StartOfWorkingWeek().Format("ddd"), Is.EqualTo("Mon"));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Relative dates - Month.
|
||||
// DateUtil.StartOfMonth
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DateTime_StartOfMonth ()
|
||||
{
|
||||
DateTime dt20160723 = new DateTime(2016, 7, 23);
|
||||
Assert.AreEqual(dt20160723.StartOfMonth(), new DateTime(2016, 7, 1));
|
||||
Assert.That(new DateTime(2016, 7, 1), Is.EqualTo(dt20160723.StartOfMonth()));
|
||||
}
|
||||
// DateUtil.EndOfMonth
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DateTime_DaysInMonth ()
|
||||
{
|
||||
DateTime dt20160723 = new DateTime(2016, 7, 23);
|
||||
Assert.AreEqual(31, dt20160723.DaysInMonth());
|
||||
Assert.That(dt20160723.DaysInMonth(), Is.EqualTo(31));
|
||||
}
|
||||
// DateUtil.EndOfMonth
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DateTime_EndOfMonth ()
|
||||
{
|
||||
DateTime dt20160723 = new DateTime(2016, 7, 23);
|
||||
Assert.AreEqual(dt20160723.EndOfMonth(), new DateTime(2016, 7, 31));
|
||||
Assert.That(new DateTime(2016, 7, 31), Is.EqualTo(dt20160723.EndOfMonth()));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// F o r m a t t i n g
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Formatting ---
|
||||
|
||||
[Test]
|
||||
public void DateTime_Format_Void ()
|
||||
{
|
||||
DateTime dt20160723 = new DateTime(2016, 7, 23);
|
||||
DateTime dt20160723172829 = new DateTime(2016, 7, 23, 17, 28, 39);
|
||||
|
||||
Assert.AreEqual("23/07/2016", dt20160723.Format("dd/MM/yyyy"));
|
||||
Assert.AreEqual("23/07/2016 00:00:00", dt20160723.Format("dd/MM/yyyy HH:mm:ss"));
|
||||
Assert.That(dt20160723.Format("dd/MM/yyyy"), Is.EqualTo("23/07/2016"));
|
||||
Assert.That(dt20160723.Format("dd/MM/yyyy HH:mm:ss"), Is.EqualTo("23/07/2016 00:00:00"));
|
||||
|
||||
Assert.AreEqual("23/07/2016", dt20160723172829.Format("dd/MM/yyyy"));
|
||||
Assert.AreEqual("23/07/2016 17:28:39", dt20160723172829.Format("dd/MM/yyyy HH:mm:ss"));
|
||||
Assert.That(dt20160723172829.Format("dd/MM/yyyy"), Is.EqualTo("23/07/2016"));
|
||||
Assert.That(dt20160723172829.Format("dd/MM/yyyy HH:mm:ss"), Is.EqualTo("23/07/2016 17:28:39"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DateTime_FormatXmlDate ()
|
||||
{
|
||||
DateTime dt20160723 = new DateTime(2016, 7, 23);
|
||||
DateTime dt20160723172829 = new DateTime(2016, 7, 23, 17, 28, 39);
|
||||
|
||||
Assert.AreEqual("2016-07-23", DateUtil.FormatXmlDate(dt20160723));
|
||||
Assert.AreEqual("2016-07-23", DateUtil.FormatXmlDate(dt20160723172829));
|
||||
Assert.That(DateUtil.FormatXmlDate(dt20160723), Is.EqualTo("2016-07-23"));
|
||||
Assert.That(DateUtil.FormatXmlDate(dt20160723172829), Is.EqualTo("2016-07-23"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DateTime_FormatXmlTime ()
|
||||
{
|
||||
DateTime dt20160723172829 = new DateTime(2016, 7, 23, 17, 28, 39);
|
||||
|
||||
Assert.AreEqual("17:28:39", DateUtil.FormatXmlTime(dt20160723172829));
|
||||
Assert.That(DateUtil.FormatXmlTime(dt20160723172829), Is.EqualTo("17:28:39"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DateTime_FormatXmlDateTime ()
|
||||
{
|
||||
DateTime dt20160723172829 = new DateTime(2016, 7, 23, 17, 28, 39);
|
||||
|
||||
Assert.AreEqual("2016-07-23T17:28:39", DateUtil.FormatXmlDateTime(dt20160723172829));
|
||||
Assert.That(DateUtil.FormatXmlDateTime(dt20160723172829), Is.EqualTo("2016-07-23T17:28:39"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -1,70 +1,66 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
|
||||
namespace Sarand.UnitTests.Core.Base.Utils
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class EnumUtil_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void EnumUtil_IsValid ()
|
||||
{
|
||||
Assert.IsTrue(EnumUtil.IsValid<SaMessageLevel>(0));
|
||||
Assert.IsTrue(EnumUtil.IsValid<SaMessageLevel>(1));
|
||||
Assert.IsTrue(EnumUtil.IsValid<SaMessageLevel>(2));
|
||||
Assert.IsTrue(EnumUtil.IsValid<SaMessageLevel>(3));
|
||||
Assert.IsTrue(EnumUtil.IsValid<SaMessageLevel>(4));
|
||||
Assert.IsTrue(EnumUtil.IsValid<SaMessageLevel>(5));
|
||||
Assert.That(EnumUtil.IsValid<SaMessageLevel>(0), Is.True);
|
||||
Assert.That(EnumUtil.IsValid<SaMessageLevel>(1), Is.True);
|
||||
Assert.That(EnumUtil.IsValid<SaMessageLevel>(2), Is.True);
|
||||
Assert.That(EnumUtil.IsValid<SaMessageLevel>(3), Is.True);
|
||||
Assert.That(EnumUtil.IsValid<SaMessageLevel>(4), Is.True);
|
||||
Assert.That(EnumUtil.IsValid<SaMessageLevel>(5), Is.True);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void EnumUtil_GetName ()
|
||||
{
|
||||
Assert.AreEqual("Info", EnumUtil.GetName<SaMessageLevel>(SaMessageLevel.Info));
|
||||
Assert.AreEqual("Debug", EnumUtil.GetName<SaMessageLevel>(SaMessageLevel.Debug));
|
||||
Assert.That(EnumUtil.GetName<SaMessageLevel>(SaMessageLevel.Info), Is.EqualTo("Info"));
|
||||
Assert.That(EnumUtil.GetName<SaMessageLevel>(SaMessageLevel.Debug), Is.EqualTo("Debug"));
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void EnumUtil_GetValues ()
|
||||
{
|
||||
Assert.AreEqual(9,EnumUtil.GetValues<SaMessageLevel>().ToList().Count);
|
||||
Assert.AreEqual(SaMessageLevel.Info,EnumUtil.GetValues<SaMessageLevel>().ToArray()[6]);
|
||||
Assert.That(EnumUtil.GetValues<SaMessageLevel>().ToList().Count, Is.EqualTo(9));
|
||||
Assert.That(EnumUtil.GetValues<SaMessageLevel>().ToArray()[6], Is.EqualTo(SaMessageLevel.Info));
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void EnumUtil_ParseEnum ()
|
||||
{
|
||||
Assert.AreEqual(SaMessageLevel.Info, EnumUtil.ParseEnum<SaMessageLevel>("Info"));
|
||||
Assert.AreEqual(SaMessageLevel.Debug, EnumUtil.ParseEnum<SaMessageLevel>("Debug"));
|
||||
Assert.That(EnumUtil.ParseEnum<SaMessageLevel>("Info"), Is.EqualTo(SaMessageLevel.Info));
|
||||
Assert.That(EnumUtil.ParseEnum<SaMessageLevel>("Debug"), Is.EqualTo(SaMessageLevel.Debug));
|
||||
}
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void EnumUtil_ParseEnum_Exception ()
|
||||
{
|
||||
Assert.ThrowsExactly<ArgumentException>(() => EnumUtil.ParseEnum<SaMessageLevel>("ABC"));
|
||||
Assert.Throws<ArgumentException>(() => EnumUtil.ParseEnum<SaMessageLevel>("ABC"));
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void EnumUtil_StartsWith ()
|
||||
{
|
||||
Assert.AreEqual(SaMessageLevel.Info, EnumUtil.StartsWith<SaMessageLevel>("I", SaMessageLevel.Error));
|
||||
Assert.AreEqual(SaMessageLevel.Info, EnumUtil.StartsWith<SaMessageLevel>("i", SaMessageLevel.Error));
|
||||
Assert.AreEqual(SaMessageLevel.Info, EnumUtil.StartsWith<SaMessageLevel>("inf", SaMessageLevel.Error));
|
||||
Assert.AreEqual(SaMessageLevel.Debug, EnumUtil.StartsWith<SaMessageLevel>("D", SaMessageLevel.Error));
|
||||
Assert.AreEqual(SaMessageLevel.Debug, EnumUtil.StartsWith<SaMessageLevel>("d", SaMessageLevel.Error));
|
||||
Assert.AreEqual(SaMessageLevel.Debug, EnumUtil.StartsWith<SaMessageLevel>("DE", SaMessageLevel.Error));
|
||||
Assert.AreEqual(SaMessageLevel.Debug, EnumUtil.StartsWith<SaMessageLevel>("DEB", SaMessageLevel.Error));
|
||||
Assert.AreEqual(SaMessageLevel.Debug, EnumUtil.StartsWith<SaMessageLevel>("DEBU", SaMessageLevel.Error));
|
||||
Assert.AreEqual(SaMessageLevel.Debug, EnumUtil.StartsWith<SaMessageLevel>("DEBUG", SaMessageLevel.Error));
|
||||
Assert.AreEqual(SaMessageLevel.Error, EnumUtil.StartsWith<SaMessageLevel>("Err", SaMessageLevel.Error));
|
||||
Assert.AreEqual(SaMessageLevel.None, EnumUtil.StartsWith<SaMessageLevel>("", SaMessageLevel.Error));
|
||||
Assert.AreEqual(SaMessageLevel.Error, EnumUtil.StartsWith<SaMessageLevel>("ABC", SaMessageLevel.Error));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("I", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.Info));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("i", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.Info));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("inf", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.Info));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("D", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.Debug));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("d", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.Debug));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("DE", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.Debug));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("DEB", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.Debug));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("DEBU", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.Debug));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("DEBUG", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.Debug));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("Err", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.Error));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.None));
|
||||
Assert.That(EnumUtil.StartsWith<SaMessageLevel>("ABC", SaMessageLevel.Error), Is.EqualTo(SaMessageLevel.Error));
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
// --- The End ---
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,63 +1,63 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
|
||||
namespace Sarand.UnitTests.Core.Base.Utils
|
||||
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class FtpUtil_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// --- Data Members ---
|
||||
|
||||
private Random random = new Random();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void FtpUtil_CleansePath ()
|
||||
{
|
||||
Assert.AreEqual("abc", FtpUtil.CleansePath("abc"));
|
||||
Assert.AreEqual("abc", FtpUtil.CleansePath("/abc"));
|
||||
Assert.AreEqual("abc", FtpUtil.CleansePath("\\abc"));
|
||||
Assert.AreEqual("abc", FtpUtil.CleansePath("/abc/"));
|
||||
Assert.AreEqual("abc", FtpUtil.CleansePath("\\abc\\"));
|
||||
Assert.AreEqual("abc/def", FtpUtil.CleansePath("abc/def"));
|
||||
Assert.AreEqual("abc/def", FtpUtil.CleansePath("abc\\def"));
|
||||
Assert.AreEqual("abc/def", FtpUtil.CleansePath("/abc/def"));
|
||||
Assert.AreEqual("abc/def", FtpUtil.CleansePath("\\abc\\def"));
|
||||
Assert.AreEqual("abc/def", FtpUtil.CleansePath("abc/def/"));
|
||||
Assert.AreEqual("abc/def", FtpUtil.CleansePath("abc\\def\\"));
|
||||
Assert.AreEqual("abc/def", FtpUtil.CleansePath("/abc/def/"));
|
||||
Assert.AreEqual("abc/def", FtpUtil.CleansePath("\\abc\\def\\"));
|
||||
Assert.AreEqual("abc/def", FtpUtil.CleansePath("/abc//def/"));
|
||||
Assert.AreEqual("abc/def", FtpUtil.CleansePath("\\abc\\\\def\\"));
|
||||
Assert.AreEqual("abc-def", FtpUtil.CleansePath("abc-def"));
|
||||
Assert.AreEqual("abc.def", FtpUtil.CleansePath("abc.def"));
|
||||
Assert.That(FtpUtil.CleansePath("abc"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.CleansePath("/abc"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.CleansePath("\\abc"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.CleansePath("/abc/"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.CleansePath("\\abc\\"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.CleansePath("abc/def"), Is.EqualTo("abc/def"));
|
||||
Assert.That(FtpUtil.CleansePath("abc\\def"), Is.EqualTo("abc/def"));
|
||||
Assert.That(FtpUtil.CleansePath("/abc/def"), Is.EqualTo("abc/def"));
|
||||
Assert.That(FtpUtil.CleansePath("\\abc\\def"), Is.EqualTo("abc/def"));
|
||||
Assert.That(FtpUtil.CleansePath("abc/def/"), Is.EqualTo("abc/def"));
|
||||
Assert.That(FtpUtil.CleansePath("abc\\def\\"), Is.EqualTo("abc/def"));
|
||||
Assert.That(FtpUtil.CleansePath("/abc/def/"), Is.EqualTo("abc/def"));
|
||||
Assert.That(FtpUtil.CleansePath("\\abc\\def\\"), Is.EqualTo("abc/def"));
|
||||
Assert.That(FtpUtil.CleansePath("/abc//def/"), Is.EqualTo("abc/def"));
|
||||
Assert.That(FtpUtil.CleansePath("\\abc\\\\def\\"), Is.EqualTo("abc/def"));
|
||||
Assert.That(FtpUtil.CleansePath("abc-def"), Is.EqualTo("abc-def"));
|
||||
Assert.That(FtpUtil.CleansePath("abc.def"), Is.EqualTo("abc.def"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void FtpUtil_ParentFolder ()
|
||||
{
|
||||
Assert.AreEqual("", FtpUtil.GetParentFolder("abc"));
|
||||
Assert.AreEqual("", FtpUtil.GetParentFolder("/abc"));
|
||||
Assert.AreEqual("", FtpUtil.GetParentFolder("\\abc"));
|
||||
Assert.AreEqual("", FtpUtil.GetParentFolder("/abc/"));
|
||||
Assert.AreEqual("", FtpUtil.GetParentFolder("\\abc\\"));
|
||||
Assert.AreEqual("abc", FtpUtil.GetParentFolder("abc/def"));
|
||||
Assert.AreEqual("abc", FtpUtil.GetParentFolder("abc\\def"));
|
||||
Assert.AreEqual("abc", FtpUtil.GetParentFolder("/abc/def"));
|
||||
Assert.AreEqual("abc", FtpUtil.GetParentFolder("\\abc\\def"));
|
||||
Assert.AreEqual("abc", FtpUtil.GetParentFolder("abc/def/"));
|
||||
Assert.AreEqual("abc", FtpUtil.GetParentFolder("abc\\def\\"));
|
||||
Assert.AreEqual("abc", FtpUtil.GetParentFolder("/abc/def/"));
|
||||
Assert.AreEqual("abc", FtpUtil.GetParentFolder("\\abc\\def\\"));
|
||||
Assert.AreEqual("abc", FtpUtil.GetParentFolder("/abc//def/"));
|
||||
Assert.AreEqual("abc", FtpUtil.GetParentFolder("\\abc\\\\def\\"));
|
||||
Assert.AreEqual("", FtpUtil.GetParentFolder("abc-def"));
|
||||
Assert.AreEqual("", FtpUtil.GetParentFolder("abc.def"));
|
||||
Assert.That(FtpUtil.GetParentFolder("abc"), Is.Empty);
|
||||
Assert.That(FtpUtil.GetParentFolder("/abc"), Is.Empty);
|
||||
Assert.That(FtpUtil.GetParentFolder("\\abc"), Is.Empty);
|
||||
Assert.That(FtpUtil.GetParentFolder("/abc/"), Is.Empty);
|
||||
Assert.That(FtpUtil.GetParentFolder("\\abc\\"), Is.Empty);
|
||||
Assert.That(FtpUtil.GetParentFolder("abc/def"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.GetParentFolder("abc\\def"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.GetParentFolder("/abc/def"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.GetParentFolder("\\abc\\def"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.GetParentFolder("abc/def/"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.GetParentFolder("abc\\def\\"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.GetParentFolder("/abc/def/"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.GetParentFolder("\\abc\\def\\"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.GetParentFolder("/abc//def/"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.GetParentFolder("\\abc\\\\def\\"), Is.EqualTo("abc"));
|
||||
Assert.That(FtpUtil.GetParentFolder("abc-def"), Is.Empty);
|
||||
Assert.That(FtpUtil.GetParentFolder("abc.def"), Is.Empty);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using SixLabors.ImageSharp;
|
||||
using SixLabors.ImageSharp.Formats;
|
||||
@@ -11,12 +11,12 @@ using System.Text;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class ImageUtils_Tester
|
||||
{
|
||||
// --- Image Recognition ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void VerifyImageData_RecognisesPngAndJpegDimensions()
|
||||
{
|
||||
byte[] pngData = CreateImageData(7, 5, new PngEncoder());
|
||||
@@ -25,45 +25,45 @@ namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
ImageUtils.ImageConfig pngConfig = ImageUtils.VerifyImageData(pngData);
|
||||
ImageUtils.ImageConfig jpegConfig = ImageUtils.VerifyImageData(jpegData);
|
||||
|
||||
Assert.IsTrue(pngConfig.ValidImage);
|
||||
Assert.AreEqual("PNG", pngConfig.ImageFormatName);
|
||||
Assert.AreEqual("image/png", pngConfig.DefaultMimeType);
|
||||
Assert.AreEqual(7, pngConfig.Width);
|
||||
Assert.AreEqual(5, pngConfig.Height);
|
||||
Assert.IsTrue(jpegConfig.ValidImage);
|
||||
Assert.AreEqual("JPEG", jpegConfig.ImageFormatName);
|
||||
Assert.AreEqual("image/jpeg", jpegConfig.DefaultMimeType);
|
||||
Assert.AreEqual(9, jpegConfig.Width);
|
||||
Assert.AreEqual(4, jpegConfig.Height);
|
||||
Assert.That(pngConfig.ValidImage, Is.True);
|
||||
Assert.That(pngConfig.ImageFormatName, Is.EqualTo("PNG"));
|
||||
Assert.That(pngConfig.DefaultMimeType, Is.EqualTo("image/png"));
|
||||
Assert.That(pngConfig.Width, Is.EqualTo(7));
|
||||
Assert.That(pngConfig.Height, Is.EqualTo(5));
|
||||
Assert.That(jpegConfig.ValidImage, Is.True);
|
||||
Assert.That(jpegConfig.ImageFormatName, Is.EqualTo("JPEG"));
|
||||
Assert.That(jpegConfig.DefaultMimeType, Is.EqualTo("image/jpeg"));
|
||||
Assert.That(jpegConfig.Width, Is.EqualTo(9));
|
||||
Assert.That(jpegConfig.Height, Is.EqualTo(4));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void VerifyImageData_RejectsInvalidAndTruncatedData()
|
||||
{
|
||||
byte[] pngData = CreateImageData(3, 2, new PngEncoder());
|
||||
byte[] truncatedData = new byte[Math.Min(12, pngData.Length)];
|
||||
Array.Copy(pngData, truncatedData, truncatedData.Length);
|
||||
|
||||
Assert.IsFalse(ImageUtils.VerifyImageData(Array.Empty<byte>()).ValidImage);
|
||||
Assert.IsFalse(ImageUtils.VerifyImageData(Encoding.UTF8.GetBytes("not an image")).ValidImage);
|
||||
Assert.IsFalse(ImageUtils.VerifyImageData(truncatedData).ValidImage);
|
||||
Assert.That(ImageUtils.VerifyImageData(Array.Empty<byte>()).ValidImage, Is.False);
|
||||
Assert.That(ImageUtils.VerifyImageData(Encoding.UTF8.GetBytes("not an image")).ValidImage, Is.False);
|
||||
Assert.That(ImageUtils.VerifyImageData(truncatedData).ValidImage, Is.False);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void IsSvg_RecognisesSvgAndRejectsFalsePositives()
|
||||
{
|
||||
byte[] svgData = Encoding.UTF8.GetBytes("<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\"></SVG>");
|
||||
byte[] missingNamespace = Encoding.UTF8.GetBytes("<svg viewBox=\"0 0 10 10\"></svg>");
|
||||
|
||||
Assert.IsTrue(ImageUtils.IsSvg(svgData));
|
||||
Assert.IsFalse(ImageUtils.IsSvg(missingNamespace));
|
||||
Assert.IsFalse(ImageUtils.IsSvg(Encoding.UTF8.GetBytes("svg xmlns=\"http://www.w3.org/2000/svg\"")));
|
||||
Assert.IsFalse(ImageUtils.IsSvg(null));
|
||||
Assert.That(ImageUtils.IsSvg(svgData), Is.True);
|
||||
Assert.That(ImageUtils.IsSvg(missingNamespace), Is.False);
|
||||
Assert.That(ImageUtils.IsSvg(Encoding.UTF8.GetBytes("svg xmlns=\"http://www.w3.org/2000/svg\"")), Is.False);
|
||||
Assert.That(ImageUtils.IsSvg(null), Is.False);
|
||||
}
|
||||
|
||||
// --- Encoding and Resizing ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void LoadAndEncodeImage_PreservesFormatAndDimensions()
|
||||
{
|
||||
byte[] originalData = CreateImageData(8, 6, new PngEncoder());
|
||||
@@ -72,13 +72,13 @@ namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
byte[] encodedData = image.GetImageData(format);
|
||||
ImageUtils.ImageConfig encodedConfig = ImageUtils.VerifyImageData(encodedData);
|
||||
|
||||
Assert.AreEqual("PNG", format.Name);
|
||||
Assert.IsTrue(encodedConfig.ValidImage);
|
||||
Assert.AreEqual(8, encodedConfig.Width);
|
||||
Assert.AreEqual(6, encodedConfig.Height);
|
||||
Assert.That(format.Name, Is.EqualTo("PNG"));
|
||||
Assert.That(encodedConfig.ValidImage, Is.True);
|
||||
Assert.That(encodedConfig.Width, Is.EqualTo(8));
|
||||
Assert.That(encodedConfig.Height, Is.EqualTo(6));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ConstrainImage_ResizesLandscapeAndPortraitWithoutUpscaling()
|
||||
{
|
||||
ImageUtils.ImageConfig landscape = ImageUtils.VerifyImageData(CreateImageData(20, 10, new PngEncoder()));
|
||||
@@ -86,16 +86,16 @@ namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
ImageUtils.ImageConfig withinLimits = ImageUtils.VerifyImageData(CreateImageData(4, 3, new PngEncoder()));
|
||||
byte[] originalData = withinLimits.ImageData;
|
||||
|
||||
Assert.IsTrue(ImageUtils.ConstrainImage(landscape, 8, 8));
|
||||
Assert.AreEqual(8, landscape.Width);
|
||||
Assert.AreEqual(4, landscape.Height);
|
||||
Assert.IsTrue(ImageUtils.ConstrainImage(portrait, 8, 8));
|
||||
Assert.AreEqual(4, portrait.Width);
|
||||
Assert.AreEqual(8, portrait.Height);
|
||||
Assert.IsTrue(ImageUtils.ConstrainImage(withinLimits, 8, 8));
|
||||
Assert.AreSame(originalData, withinLimits.ImageData);
|
||||
Assert.IsFalse(ImageUtils.ConstrainImage(landscape, 0, 8));
|
||||
Assert.IsFalse(ImageUtils.ConstrainImage(portrait, 8, 0));
|
||||
Assert.That(ImageUtils.ConstrainImage(landscape, 8, 8), Is.True);
|
||||
Assert.That(landscape.Width, Is.EqualTo(8));
|
||||
Assert.That(landscape.Height, Is.EqualTo(4));
|
||||
Assert.That(ImageUtils.ConstrainImage(portrait, 8, 8), Is.True);
|
||||
Assert.That(portrait.Width, Is.EqualTo(4));
|
||||
Assert.That(portrait.Height, Is.EqualTo(8));
|
||||
Assert.That(ImageUtils.ConstrainImage(withinLimits, 8, 8), Is.True);
|
||||
Assert.That(withinLimits.ImageData, Is.SameAs(originalData));
|
||||
Assert.That(ImageUtils.ConstrainImage(landscape, 0, 8), Is.False);
|
||||
Assert.That(ImageUtils.ConstrainImage(portrait, 8, 0), Is.False);
|
||||
}
|
||||
|
||||
// --- Utilities ---
|
||||
|
||||
@@ -1,45 +1,42 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Reflection;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
|
||||
namespace Sarand.UnitTests.Core.Base.Utils
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class ListUtil_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Is Empty.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void ListUtil_IsEmpty_Test()
|
||||
{
|
||||
List<String> values = new List<string>();
|
||||
|
||||
Assert.AreEqual(true, ListUtil.IsEmpty(values));
|
||||
Assert.AreEqual(true, values.IsEmpty());
|
||||
Assert.That(ListUtil.IsEmpty(values), Is.EqualTo(true));
|
||||
Assert.That(values.IsEmpty(), Is.EqualTo(true));
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
values.Add(i.ToString());
|
||||
|
||||
Assert.AreEqual(false, ListUtil.IsEmpty(values));
|
||||
Assert.AreEqual(false, values.IsEmpty());
|
||||
Assert.That(ListUtil.IsEmpty(values), Is.EqualTo(false));
|
||||
Assert.That(values.IsEmpty(), Is.EqualTo(false));
|
||||
|
||||
values.Clear();
|
||||
|
||||
Assert.AreEqual(true, ListUtil.IsEmpty(values));
|
||||
Assert.AreEqual(true, values.IsEmpty());
|
||||
Assert.That(ListUtil.IsEmpty(values), Is.EqualTo(true));
|
||||
Assert.That(values.IsEmpty(), Is.EqualTo(true));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Randomise.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ListUtil_Randomise_Test()
|
||||
{
|
||||
// Assume that randomising a list of 100 values highly unlikely to result in same sequence!
|
||||
@@ -54,7 +51,7 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
values.Add(i.ToString());
|
||||
|
||||
for (int i = 0; i < itemsInList; i++)
|
||||
Assert.AreEqual(i.ToString(), values[i]);
|
||||
Assert.That(values[i], Is.EqualTo(i.ToString()));
|
||||
|
||||
values = values.Randomise();
|
||||
//Debug.WriteLine($"{SysUtil.Fn} Values: {values.Concat(",")}");
|
||||
@@ -68,10 +65,10 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
break;
|
||||
}
|
||||
}
|
||||
Assert.AreEqual(false, originalSequence);
|
||||
Assert.That(originalSequence, Is.EqualTo(false));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
@@ -9,9 +9,11 @@ using System.Collections.Generic;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class NewtonsoftJsonUtil_Tester
|
||||
{
|
||||
// --- Definitions ---
|
||||
|
||||
private class JsonData
|
||||
{
|
||||
public string Name { get; set; }
|
||||
@@ -22,7 +24,7 @@ namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
|
||||
// --- Serialization ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SerializeObject_HandlesObjectsArraysNullsAndSettings()
|
||||
{
|
||||
JsonData data = new JsonData { Name = "alpha", Count = 3, Optional = null };
|
||||
@@ -31,13 +33,13 @@ namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
string objectJson = NewtonsoftJsonUtil.SerializeObject(data, settings);
|
||||
string arrayJson = NewtonsoftJsonUtil.SerializeObject(new[] { 1, 2, 3 });
|
||||
|
||||
StringAssert.Contains(objectJson, "\"Name\":\"alpha\"");
|
||||
Assert.IsFalse(objectJson.Contains("Optional"));
|
||||
Assert.AreEqual("[1,2,3]", arrayJson);
|
||||
Assert.AreEqual("null", NewtonsoftJsonUtil.SerializeObject(null));
|
||||
Assert.That(objectJson, Does.Contain("\"Name\":\"alpha\""));
|
||||
Assert.That(objectJson.Contains("Optional"), Is.False);
|
||||
Assert.That(arrayJson, Is.EqualTo("[1,2,3]"));
|
||||
Assert.That(NewtonsoftJsonUtil.SerializeObject(null), Is.EqualTo("null"));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysIdJsonConverter_RoundTripsValidAndInvalidValues()
|
||||
{
|
||||
string validJson = JsonConvert.SerializeObject(new SysId(42));
|
||||
@@ -46,54 +48,54 @@ namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
SysId validId = JsonConvert.DeserializeObject<SysId>(validJson);
|
||||
SysId invalidId = JsonConvert.DeserializeObject<SysId>(invalidJson);
|
||||
|
||||
Assert.AreEqual("42", validJson);
|
||||
Assert.AreEqual("0", invalidJson);
|
||||
Assert.AreEqual(42, validId.ToInt());
|
||||
Assert.IsFalse(SysId.IsValid(invalidId));
|
||||
Assert.IsFalse(SysId.IsValid(JsonConvert.DeserializeObject<SysId>("null")));
|
||||
Assert.That(validJson, Is.EqualTo("42"));
|
||||
Assert.That(invalidJson, Is.EqualTo("0"));
|
||||
Assert.That(validId.ToInt(), Is.EqualTo(42));
|
||||
Assert.That(SysId.IsValid(invalidId), Is.False);
|
||||
Assert.That(SysId.IsValid(JsonConvert.DeserializeObject<SysId>("null")), Is.False);
|
||||
}
|
||||
|
||||
// --- Parsing ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ParseJsonMethods_ParseTokensObjectsAndArrays()
|
||||
{
|
||||
JToken token = NewtonsoftJsonUtil.ParseJsonToken("123");
|
||||
JObject jsonObject = NewtonsoftJsonUtil.ParseJsonObject("{\"name\":\"alpha\",\"nested\":{\"enabled\":true}}");
|
||||
JArray jsonArray = NewtonsoftJsonUtil.ParseJsonArray("[1,2,3]");
|
||||
|
||||
Assert.AreEqual(123, token.Value<int>());
|
||||
Assert.AreEqual("alpha", jsonObject["name"].Value<string>());
|
||||
Assert.IsTrue(jsonObject["nested"]["enabled"].Value<bool>());
|
||||
CollectionAssert.AreEqual(new[] { 1, 2, 3 }, jsonArray.ToObject<int[]>());
|
||||
Assert.That(token.Value<int>(), Is.EqualTo(123));
|
||||
Assert.That(jsonObject["name"].Value<string>(), Is.EqualTo("alpha"));
|
||||
Assert.That(jsonObject["nested"]["enabled"].Value<bool>(), Is.True);
|
||||
Assert.That(jsonArray.ToObject<int[]>(), Is.EqualTo(new[] { 1, 2, 3 }));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void ParseJsonMethods_ReportInvalidInputWithoutThrowing()
|
||||
{
|
||||
Assert.IsNull(NewtonsoftJsonUtil.ParseJsonToken("{", out Exception tokenException));
|
||||
Assert.IsNotNull(tokenException);
|
||||
Assert.IsNull(NewtonsoftJsonUtil.ParseJsonObject("[]", out Exception objectException));
|
||||
Assert.IsNotNull(objectException);
|
||||
Assert.IsNull(NewtonsoftJsonUtil.ParseJsonArray("{}", out Exception arrayException));
|
||||
Assert.IsNotNull(arrayException);
|
||||
Assert.ThrowsExactly<JsonReaderException>(() => NewtonsoftJsonUtil.ParseJsonToken("{"));
|
||||
Assert.That(NewtonsoftJsonUtil.ParseJsonToken("{", out Exception tokenException), Is.Null);
|
||||
Assert.That(tokenException, Is.Not.Null);
|
||||
Assert.That(NewtonsoftJsonUtil.ParseJsonObject("[]", out Exception objectException), Is.Null);
|
||||
Assert.That(objectException, Is.Not.Null);
|
||||
Assert.That(NewtonsoftJsonUtil.ParseJsonArray("{}", out Exception arrayException), Is.Null);
|
||||
Assert.That(arrayException, Is.Not.Null);
|
||||
Assert.Throws<JsonReaderException>(() => NewtonsoftJsonUtil.ParseJsonToken("{"));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DeserializeJsonObject_ProvidesDynamicPropertyAccess()
|
||||
{
|
||||
dynamic data = SacsJsonHelper.DeserializeJsonObject("{\"name\":\"alpha\",\"count\":3,\"items\":[\"a\",\"b\"]}");
|
||||
|
||||
Assert.AreEqual("alpha", (string)data.name);
|
||||
Assert.AreEqual(3, (int)data.count);
|
||||
Assert.AreEqual("b", (string)data.items[1]);
|
||||
Assert.IsNull(SacsJsonHelper.DeserializeJsonObject("null"));
|
||||
Assert.That((string)data.name, Is.EqualTo("alpha"));
|
||||
Assert.That((int)data.count, Is.EqualTo(3));
|
||||
Assert.That((string)data.items[1], Is.EqualTo("b"));
|
||||
Assert.That((object)SacsJsonHelper.DeserializeJsonObject("null"), Is.Null);
|
||||
}
|
||||
|
||||
// --- Deep Copy ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DeepCopy_CreatesIndependentNestedCollectionsAndReplacesConstructorValues()
|
||||
{
|
||||
JsonData source = new JsonData { Name = "source", Count = 2 };
|
||||
@@ -103,12 +105,12 @@ namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
JsonData copy = SerializableUtil.DeepCopy(source);
|
||||
copy.Values.Add("copy only");
|
||||
|
||||
Assert.AreNotSame(source, copy);
|
||||
Assert.AreNotSame(source.Values, copy.Values);
|
||||
CollectionAssert.AreEqual(new[] { "one", "two" }, source.Values);
|
||||
CollectionAssert.AreEqual(new[] { "one", "two", "copy only" }, copy.Values);
|
||||
Assert.IsNull(SerializableUtil.DeepCopy<JsonData>(null));
|
||||
Assert.AreEqual(String.Empty, SerializableUtil.ToJson<JsonData>(null));
|
||||
Assert.That(copy, Is.Not.SameAs(source));
|
||||
Assert.That(copy.Values, Is.Not.SameAs(source.Values));
|
||||
Assert.That(source.Values, Is.EqualTo(new[] { "one", "two" }));
|
||||
Assert.That(copy.Values, Is.EqualTo(new[] { "one", "two", "copy only" }));
|
||||
Assert.That(SerializableUtil.DeepCopy<JsonData>(null), Is.Null);
|
||||
Assert.That(SerializableUtil.ToJson<JsonData>(null), Is.Empty);
|
||||
}
|
||||
|
||||
// --- The End ---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -8,11 +8,11 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SerializableUtil_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
// --- Definitions ---
|
||||
|
||||
[Serializable]
|
||||
private class TestData
|
||||
{
|
||||
@@ -29,14 +29,13 @@ namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// --- Data Members ---
|
||||
|
||||
private Random random = new Random();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Deep Copy.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void SerializableUtil_DeepCopy()
|
||||
{
|
||||
// Clone test data.
|
||||
@@ -44,23 +43,23 @@ namespace Sacs.UnitTests.Net.Standard.Base.Utils
|
||||
TestData data_DeepCopy = SerializableUtil.DeepCopy(data);
|
||||
|
||||
// Verify results.
|
||||
Assert.AreEqual(true, data_DeepCopy is TestData);
|
||||
Assert.AreEqual(data.stringValue, data_DeepCopy.stringValue);
|
||||
Assert.AreEqual(data.longValue, data_DeepCopy.longValue);
|
||||
Assert.That(data_DeepCopy is TestData, Is.EqualTo(true));
|
||||
Assert.That(data_DeepCopy.stringValue, Is.EqualTo(data.stringValue));
|
||||
Assert.That(data_DeepCopy.longValue, Is.EqualTo(data.longValue));
|
||||
|
||||
// Clone test data A.
|
||||
TestDataA dataA = new TestDataA();
|
||||
TestDataA dataA_DeepCopy = SerializableUtil.DeepCopy(dataA);
|
||||
|
||||
// Verify results.
|
||||
Assert.AreEqual(true, dataA_DeepCopy is TestData);
|
||||
Assert.AreEqual(true, dataA_DeepCopy is TestDataA);
|
||||
Assert.AreEqual(dataA.stringValue, dataA_DeepCopy.stringValue);
|
||||
Assert.AreEqual(dataA.longValue, dataA_DeepCopy.longValue);
|
||||
Assert.AreNotEqual(data.stringValue, dataA_DeepCopy.stringValue);
|
||||
Assert.AreNotEqual(data.longValue, dataA_DeepCopy.longValue);
|
||||
Assert.That(dataA_DeepCopy is TestData, Is.EqualTo(true));
|
||||
Assert.That(dataA_DeepCopy is TestDataA, Is.EqualTo(true));
|
||||
Assert.That(dataA_DeepCopy.stringValue, Is.EqualTo(dataA.stringValue));
|
||||
Assert.That(dataA_DeepCopy.longValue, Is.EqualTo(dataA.longValue));
|
||||
Assert.That(dataA_DeepCopy.stringValue, Is.Not.EqualTo(data.stringValue));
|
||||
Assert.That(dataA_DeepCopy.longValue, Is.Not.EqualTo(data.longValue));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,27 +1,28 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
|
||||
namespace Sarand.UnitTests.Core.Base.Utils
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class StringListUtil_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// --- Data Members ---
|
||||
|
||||
private Random random = new Random();
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void StringList_CreateList ()
|
||||
{
|
||||
List<String> values = StringListUtil.CreateList("ABC",3);
|
||||
Assert.AreEqual(3, values.Count);
|
||||
Assert.AreEqual("ABC,ABC,ABC", values.Concat(","));
|
||||
Assert.That(values.Count, Is.EqualTo(3));
|
||||
Assert.That(values.Concat(","), Is.EqualTo("ABC,ABC,ABC"));
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringList_RemoveBlanks ()
|
||||
{
|
||||
List<String> values = new List<string>();
|
||||
@@ -31,15 +32,15 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
values.Add("B");
|
||||
values.Add("");
|
||||
values.Add("C");
|
||||
Assert.AreEqual(6, values.Count);
|
||||
Assert.That(values.Count, Is.EqualTo(6));
|
||||
|
||||
// Remove blanks without trimming.
|
||||
values.RemoveBlanks(false);
|
||||
Assert.AreEqual(4, values.Count);
|
||||
Assert.That(values.Count, Is.EqualTo(4));
|
||||
|
||||
// Remove blanks with trimming.
|
||||
values.RemoveBlanks(true);
|
||||
Assert.AreEqual(3, values.Count);
|
||||
Assert.That(values.Count, Is.EqualTo(3));
|
||||
|
||||
// Only blanks in list.
|
||||
values.Clear();
|
||||
@@ -48,12 +49,11 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
values.Add("");
|
||||
values.Add(" ");
|
||||
values.Add("");
|
||||
Assert.AreEqual(5, values.Count);
|
||||
Assert.That(values.Count, Is.EqualTo(5));
|
||||
values.RemoveBlanks();
|
||||
Assert.AreEqual(0, values.Count);
|
||||
Assert.That(values.Count, Is.EqualTo(0));
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringList_RemoveDuplicatesCI ()
|
||||
{
|
||||
List<String> values = new List<string>();
|
||||
@@ -63,50 +63,48 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
values.Add("B");
|
||||
values.Add("b");
|
||||
values.Add("C");
|
||||
Assert.AreEqual(6, values.Count);
|
||||
Assert.AreEqual("C,A,C,B,B,C", values.Concat(",").ToUpper());
|
||||
Assert.That(values.Count, Is.EqualTo(6));
|
||||
Assert.That(values.Concat(",").ToUpper(), Is.EqualTo("C,A,C,B,B,C"));
|
||||
|
||||
// Remove blanks without trimming.
|
||||
values.RemoveDuplicatesCI();
|
||||
Assert.AreEqual(3, values.Count);
|
||||
Assert.AreEqual("C,A,B", values.Concat(","));
|
||||
Assert.That(values.Count, Is.EqualTo(3));
|
||||
Assert.That(values.Concat(","), Is.EqualTo("C,A,B"));
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringList_Split ()
|
||||
{
|
||||
// Simple delimiter.
|
||||
List<String> values = StringListUtil.Split("A:B:C",":");
|
||||
Assert.AreEqual(3, values.Count);
|
||||
Assert.AreEqual("A,B,C", values.Concat(","));
|
||||
Assert.That(values.Count, Is.EqualTo(3));
|
||||
Assert.That(values.Concat(","), Is.EqualTo("A,B,C"));
|
||||
|
||||
// Simple delimiter, null value.
|
||||
values = StringListUtil.Split(null, ":");
|
||||
Assert.AreEqual(0, values.Count);
|
||||
Assert.AreEqual("", values.Concat(","));
|
||||
Assert.That(values.Count, Is.EqualTo(0));
|
||||
Assert.That(values.Concat(","), Is.Empty);
|
||||
|
||||
// Simple delimiter, empty value.
|
||||
values = StringListUtil.Split("", ":");
|
||||
Assert.AreEqual(1, values.Count);
|
||||
Assert.AreEqual("", values.Concat(","));
|
||||
Assert.That(values.Count, Is.EqualTo(1));
|
||||
Assert.That(values.Concat(","), Is.Empty);
|
||||
|
||||
// Null delimiter.
|
||||
values = StringListUtil.Split("A:B:C", null);
|
||||
Assert.AreEqual(1, values.Count);
|
||||
Assert.AreEqual("A:B:C", values.Concat(","));
|
||||
Assert.That(values.Count, Is.EqualTo(1));
|
||||
Assert.That(values.Concat(","), Is.EqualTo("A:B:C"));
|
||||
|
||||
// Blank delimiter.
|
||||
values = StringListUtil.Split("A:B:C", "");
|
||||
Assert.AreEqual(1, values.Count);
|
||||
Assert.AreEqual("A:B:C", values.Concat(","));
|
||||
Assert.That(values.Count, Is.EqualTo(1));
|
||||
Assert.That(values.Concat(","), Is.EqualTo("A:B:C"));
|
||||
|
||||
// Blank values.
|
||||
values = StringListUtil.Split("A::B: :C:::", ":", true, true);
|
||||
Assert.AreEqual(3, values.Count);
|
||||
Assert.AreEqual("A,B,C", values.Concat(","));
|
||||
Assert.That(values.Count, Is.EqualTo(3));
|
||||
Assert.That(values.Concat(","), Is.EqualTo("A,B,C"));
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringList_Concat ()
|
||||
{
|
||||
List<String> values = new List<string>();
|
||||
@@ -117,12 +115,13 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
values.Add("");
|
||||
values.Add("C");
|
||||
values.Add(" ");
|
||||
Assert.AreEqual(7, values.Count);
|
||||
Assert.AreEqual(",A,,B,,C,", values.Concat(","));
|
||||
Assert.AreEqual(",A, ,B,,C, ", values.Concat(",", "", "", false, false));
|
||||
Assert.AreEqual(",A,,B,,C,", values.Concat(",", "", "", true, false));
|
||||
Assert.AreEqual("A,B,C", values.Concat(",", "", "", true, true));
|
||||
Assert.That(values.Count, Is.EqualTo(7));
|
||||
Assert.That(values.Concat(","), Is.EqualTo(",A,,B,,C,"));
|
||||
Assert.That(values.Concat(",", "", "", false, false), Is.EqualTo(",A, ,B,,C, "));
|
||||
Assert.That(values.Concat(",", "", "", true, false), Is.EqualTo(",A,,B,,C,"));
|
||||
Assert.That(values.Concat(",", "", "", true, true), Is.EqualTo("A,B,C"));
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
// --- The End ---
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
|
||||
namespace Sarand.UnitTests.Core.Base.Utils
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class StringUtil_Tester
|
||||
{
|
||||
// --- Data Members ---
|
||||
@@ -15,204 +15,204 @@ namespace Sarand.UnitTests.Core.Base.Utils
|
||||
|
||||
// --- Empty and Blank Values ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringUtil_IsEmpty()
|
||||
{
|
||||
// Leading spaces.
|
||||
Assert.AreEqual(true, StringUtil.IsEmpty(null));
|
||||
Assert.AreEqual(true, StringUtil.IsEmpty(""));
|
||||
Assert.AreEqual(false, StringUtil.IsEmpty(" "));
|
||||
Assert.AreEqual(false, StringUtil.IsEmpty("A"));
|
||||
Assert.AreEqual(false, StringUtil.IsEmpty("Abc"));
|
||||
Assert.AreEqual(true, "".IsEmpty());
|
||||
Assert.AreEqual(false, "Abc".IsEmpty());
|
||||
Assert.That(StringUtil.IsEmpty(null), Is.EqualTo(true));
|
||||
Assert.That(StringUtil.IsEmpty(""), Is.EqualTo(true));
|
||||
Assert.That(StringUtil.IsEmpty(" "), Is.EqualTo(false));
|
||||
Assert.That(StringUtil.IsEmpty("A"), Is.EqualTo(false));
|
||||
Assert.That(StringUtil.IsEmpty("Abc"), Is.EqualTo(false));
|
||||
Assert.That("".IsEmpty(), Is.EqualTo(true));
|
||||
Assert.That("Abc".IsEmpty(), Is.EqualTo(false));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringUtil_IsBlank()
|
||||
{
|
||||
// Leading spaces.
|
||||
Assert.AreEqual(true, StringUtil.IsBlank(null));
|
||||
Assert.AreEqual(true, StringUtil.IsBlank(""));
|
||||
Assert.AreEqual(true, StringUtil.IsBlank(" "));
|
||||
Assert.AreEqual(true, StringUtil.IsBlank(" "));
|
||||
Assert.AreEqual(true, StringUtil.IsBlank(" \n\t "));
|
||||
Assert.AreEqual(false, StringUtil.IsBlank("A"));
|
||||
Assert.AreEqual(false, StringUtil.IsBlank("Abc"));
|
||||
Assert.AreEqual(true, "".IsBlank());
|
||||
Assert.AreEqual(true, " ".IsBlank());
|
||||
Assert.AreEqual(false, "Abc".IsBlank());
|
||||
Assert.That(StringUtil.IsBlank(null), Is.EqualTo(true));
|
||||
Assert.That(StringUtil.IsBlank(""), Is.EqualTo(true));
|
||||
Assert.That(StringUtil.IsBlank(" "), Is.EqualTo(true));
|
||||
Assert.That(StringUtil.IsBlank(" "), Is.EqualTo(true));
|
||||
Assert.That(StringUtil.IsBlank(" \n\t "), Is.EqualTo(true));
|
||||
Assert.That(StringUtil.IsBlank("A"), Is.EqualTo(false));
|
||||
Assert.That(StringUtil.IsBlank("Abc"), Is.EqualTo(false));
|
||||
Assert.That("".IsBlank(), Is.EqualTo(true));
|
||||
Assert.That(" ".IsBlank(), Is.EqualTo(true));
|
||||
Assert.That("Abc".IsBlank(), Is.EqualTo(false));
|
||||
}
|
||||
|
||||
// --- Regular Expression Matching ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringUtil_IsMatch()
|
||||
{
|
||||
// IsMatch.
|
||||
Assert.AreEqual(true, "ABCDEF".IsMatch("ABCDEF"));
|
||||
Assert.AreEqual(true, "ABCDEF".IsMatch("^ABCDEF$"));
|
||||
Assert.AreEqual(true, "ABCDEF".IsMatchCI("AbCdEf"));
|
||||
Assert.AreEqual(true, "ABCDEF".IsMatchCI("^AbCdEf$"));
|
||||
Assert.AreEqual(true, "ABCDEF".IsMatch("^ABC"));
|
||||
Assert.AreEqual(true, "ABCDEF".IsMatchCI("AbC"));
|
||||
Assert.AreEqual(true, "ABCDEF".IsMatch("CDE"));
|
||||
Assert.AreEqual(true, "ABCDEF".IsMatchCI("cDe"));
|
||||
Assert.AreEqual(true, "ABCDEF".IsMatch("CDE", System.Text.RegularExpressions.RegexOptions.None));
|
||||
Assert.AreEqual(true, "ABCDEF".IsMatch(new Regex("CDE", System.Text.RegularExpressions.RegexOptions.None)));
|
||||
Assert.AreEqual(true, "ABCDEF".IsMatch(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.IgnoreCase)));
|
||||
Assert.That("ABCDEF".IsMatch("ABCDEF"), Is.EqualTo(true));
|
||||
Assert.That("ABCDEF".IsMatch("^ABCDEF$"), Is.EqualTo(true));
|
||||
Assert.That("ABCDEF".IsMatchCI("AbCdEf"), Is.EqualTo(true));
|
||||
Assert.That("ABCDEF".IsMatchCI("^AbCdEf$"), Is.EqualTo(true));
|
||||
Assert.That("ABCDEF".IsMatch("^ABC"), Is.EqualTo(true));
|
||||
Assert.That("ABCDEF".IsMatchCI("AbC"), Is.EqualTo(true));
|
||||
Assert.That("ABCDEF".IsMatch("CDE"), Is.EqualTo(true));
|
||||
Assert.That("ABCDEF".IsMatchCI("cDe"), Is.EqualTo(true));
|
||||
Assert.That("ABCDEF".IsMatch("CDE", System.Text.RegularExpressions.RegexOptions.None), Is.EqualTo(true));
|
||||
Assert.That("ABCDEF".IsMatch(new Regex("CDE", System.Text.RegularExpressions.RegexOptions.None)), Is.EqualTo(true));
|
||||
Assert.That("ABCDEF".IsMatch(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.IgnoreCase)), Is.EqualTo(true));
|
||||
|
||||
// IsMatch with escaped content.
|
||||
Assert.AreEqual(true, "ABC\\sDEF".IsMatch("\\\\s"));
|
||||
Assert.AreEqual(true, "AB(CD)EF".IsMatch("(..)"));
|
||||
Assert.AreEqual(true, "AB(CD)EF".IsMatch("\\(CD\\)"));
|
||||
Assert.That("ABC\\sDEF".IsMatch("\\\\s"), Is.EqualTo(true));
|
||||
Assert.That("AB(CD)EF".IsMatch("(..)"), Is.EqualTo(true));
|
||||
Assert.That("AB(CD)EF".IsMatch("\\(CD\\)"), Is.EqualTo(true));
|
||||
|
||||
// Not match.
|
||||
Assert.AreEqual(false, "ABCDEF".IsMatch("cDe"));
|
||||
Assert.AreEqual(false, "ABCDEF".IsMatchCI("eFg"));
|
||||
Assert.AreEqual(false, "ABCDEF".IsMatch("cDe", System.Text.RegularExpressions.RegexOptions.None));
|
||||
Assert.AreEqual(false, "ABCDEF".IsMatch(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.None)));
|
||||
Assert.That("ABCDEF".IsMatch("cDe"), Is.EqualTo(false));
|
||||
Assert.That("ABCDEF".IsMatchCI("eFg"), Is.EqualTo(false));
|
||||
Assert.That("ABCDEF".IsMatch("cDe", System.Text.RegularExpressions.RegexOptions.None), Is.EqualTo(false));
|
||||
Assert.That("ABCDEF".IsMatch(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.None)), Is.EqualTo(false));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringUtil_Match()
|
||||
{
|
||||
// Match.
|
||||
Assert.AreEqual("CDE", "ABCDEF".GetMatch("CDE"));
|
||||
Assert.AreEqual("CDE", "ABCDEF".GetMatchCI("cDe"));
|
||||
Assert.AreEqual("CDE", "ABCDEF".Match("CDE", System.Text.RegularExpressions.RegexOptions.None).Value);
|
||||
Assert.AreEqual("CDE", "ABCDEF".Match(new Regex("CDE", System.Text.RegularExpressions.RegexOptions.None)).Value);
|
||||
Assert.AreEqual("CDE", "ABCDEF".Match(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.IgnoreCase)).Value);
|
||||
Assert.That("ABCDEF".GetMatch("CDE"), Is.EqualTo("CDE"));
|
||||
Assert.That("ABCDEF".GetMatchCI("cDe"), Is.EqualTo("CDE"));
|
||||
Assert.That("ABCDEF".Match("CDE", System.Text.RegularExpressions.RegexOptions.None).Value, Is.EqualTo("CDE"));
|
||||
Assert.That("ABCDEF".Match(new Regex("CDE", System.Text.RegularExpressions.RegexOptions.None)).Value, Is.EqualTo("CDE"));
|
||||
Assert.That("ABCDEF".Match(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.IgnoreCase)).Value, Is.EqualTo("CDE"));
|
||||
|
||||
// Match with escaped content.
|
||||
Assert.AreEqual(" ", "ABC DEF".GetMatch("\\s"));
|
||||
Assert.AreEqual("\\s", "ABC\\sDEF".GetMatch("\\\\s"));
|
||||
Assert.AreEqual("AB", "AB(CD)EF".GetMatch("(..)"));
|
||||
Assert.AreEqual("(CD)", "AB(CD)EF".GetMatch("\\(..\\)"));
|
||||
Assert.AreEqual("(CD)", "AB(CD)EF".GetMatch("\\(CD\\)"));
|
||||
Assert.That("ABC DEF".GetMatch("\\s"), Is.EqualTo(" "));
|
||||
Assert.That("ABC\\sDEF".GetMatch("\\\\s"), Is.EqualTo("\\s"));
|
||||
Assert.That("AB(CD)EF".GetMatch("(..)"), Is.EqualTo("AB"));
|
||||
Assert.That("AB(CD)EF".GetMatch("\\(..\\)"), Is.EqualTo("(CD)"));
|
||||
Assert.That("AB(CD)EF".GetMatch("\\(CD\\)"), Is.EqualTo("(CD)"));
|
||||
|
||||
// Not match.
|
||||
Assert.AreEqual(null, "ABCDEF".GetMatch("cDe"));
|
||||
Assert.AreEqual(null, "ABCDEF".GetMatch("eFg"));
|
||||
Assert.AreEqual("", "ABCDEF".Match("cDe", System.Text.RegularExpressions.RegexOptions.None).Value);
|
||||
Assert.AreEqual("", "ABCDEF".Match(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.None)).Value);
|
||||
Assert.That("ABCDEF".GetMatch("cDe"), Is.EqualTo(null));
|
||||
Assert.That("ABCDEF".GetMatch("eFg"), Is.EqualTo(null));
|
||||
Assert.That("ABCDEF".Match("cDe", System.Text.RegularExpressions.RegexOptions.None).Value, Is.Empty);
|
||||
Assert.That("ABCDEF".Match(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.None)).Value, Is.Empty);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringUtil_Matches()
|
||||
{
|
||||
// Match.
|
||||
Assert.AreEqual(1, "ABCDEF".GetMatches("CDE").Count);
|
||||
Assert.AreEqual(1, "ABCDEF".GetMatchesCI("cDe").Count);
|
||||
Assert.AreEqual(1, "ABCDEF".Matches("CDE", System.Text.RegularExpressions.RegexOptions.None).Count);
|
||||
Assert.AreEqual(1, "ABCDEF".Matches(new Regex("CDE", System.Text.RegularExpressions.RegexOptions.None)).Count);
|
||||
Assert.AreEqual(1, "ABCDEF".Matches(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.IgnoreCase)).Count);
|
||||
Assert.That("ABCDEF".GetMatches("CDE").Count, Is.EqualTo(1));
|
||||
Assert.That("ABCDEF".GetMatchesCI("cDe").Count, Is.EqualTo(1));
|
||||
Assert.That("ABCDEF".Matches("CDE", System.Text.RegularExpressions.RegexOptions.None).Count, Is.EqualTo(1));
|
||||
Assert.That("ABCDEF".Matches(new Regex("CDE", System.Text.RegularExpressions.RegexOptions.None)).Count, Is.EqualTo(1));
|
||||
Assert.That("ABCDEF".Matches(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.IgnoreCase)).Count, Is.EqualTo(1));
|
||||
|
||||
// Match with escaped content.
|
||||
Assert.AreEqual(1, "ABC DEF".GetMatchesCI("\\s").Count);
|
||||
Assert.AreEqual(1, "ABC\\sDEF".GetMatchesCI("\\\\s").Count);
|
||||
Assert.AreEqual(4, "AB(CD)EF".GetMatchesCI("(..)").Count);
|
||||
Assert.AreEqual("D)", "AB(CD)EF".GetMatchesCI("(..)")[2]);
|
||||
Assert.AreEqual(1, "AB(CD)EF".GetMatchesCI("\\(..\\)").Count);
|
||||
Assert.AreEqual(1, "AB(CD)EF".GetMatchesCI("\\(CD\\)").Count);
|
||||
Assert.That("ABC DEF".GetMatchesCI("\\s").Count, Is.EqualTo(1));
|
||||
Assert.That("ABC\\sDEF".GetMatchesCI("\\\\s").Count, Is.EqualTo(1));
|
||||
Assert.That("AB(CD)EF".GetMatchesCI("(..)").Count, Is.EqualTo(4));
|
||||
Assert.That("AB(CD)EF".GetMatchesCI("(..)")[2], Is.EqualTo("D)"));
|
||||
Assert.That("AB(CD)EF".GetMatchesCI("\\(..\\)").Count, Is.EqualTo(1));
|
||||
Assert.That("AB(CD)EF".GetMatchesCI("\\(CD\\)").Count, Is.EqualTo(1));
|
||||
|
||||
// Not match.
|
||||
Assert.AreEqual(0, "ABCDEF".GetMatches("cDe").Count);
|
||||
Assert.AreEqual(0, "ABCDEF".GetMatches("eFg").Count);
|
||||
Assert.AreEqual(0, "ABCDEF".Matches("cDe", System.Text.RegularExpressions.RegexOptions.None).Count);
|
||||
Assert.AreEqual(0, "ABCDEF".Matches(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.None)).Count);
|
||||
Assert.That("ABCDEF".GetMatches("cDe").Count, Is.EqualTo(0));
|
||||
Assert.That("ABCDEF".GetMatches("eFg").Count, Is.EqualTo(0));
|
||||
Assert.That("ABCDEF".Matches("cDe", System.Text.RegularExpressions.RegexOptions.None).Count, Is.EqualTo(0));
|
||||
Assert.That("ABCDEF".Matches(new Regex("cDe", System.Text.RegularExpressions.RegexOptions.None)).Count, Is.EqualTo(0));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringUtil_MatchCount()
|
||||
{
|
||||
// Match.
|
||||
Assert.AreEqual(1, "ABCDEF".GetMatchCount("CDE"));
|
||||
Assert.AreEqual(1, "ABCDEF".MatchesCount(new Regex("CDE")));
|
||||
Assert.AreEqual(2, "ABCDEFGHICDEJKL".GetMatchCount("CDE"));
|
||||
Assert.AreEqual(2, "ABCDEFGHICDEJKL".MatchesCount(new Regex("CDE")));
|
||||
Assert.That("ABCDEF".GetMatchCount("CDE"), Is.EqualTo(1));
|
||||
Assert.That("ABCDEF".MatchesCount(new Regex("CDE")), Is.EqualTo(1));
|
||||
Assert.That("ABCDEFGHICDEJKL".GetMatchCount("CDE"), Is.EqualTo(2));
|
||||
Assert.That("ABCDEFGHICDEJKL".MatchesCount(new Regex("CDE")), Is.EqualTo(2));
|
||||
}
|
||||
|
||||
// --- Padding ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringUtil_PadLeft()
|
||||
{
|
||||
// Leading spaces.
|
||||
Assert.AreEqual(" ", "".PadLeft(3, ' '));
|
||||
Assert.AreEqual(" A", "A".PadLeft(3, ' '));
|
||||
Assert.AreEqual(" AB", "AB".PadLeft(3, ' '));
|
||||
Assert.AreEqual("ABC", "ABC".PadLeft(3, ' '));
|
||||
Assert.AreEqual("ABCD", "ABCD".PadLeft(3, ' '));
|
||||
Assert.That("".PadLeft(3, ' '), Is.EqualTo(" "));
|
||||
Assert.That("A".PadLeft(3, ' '), Is.EqualTo(" A"));
|
||||
Assert.That("AB".PadLeft(3, ' '), Is.EqualTo(" AB"));
|
||||
Assert.That("ABC".PadLeft(3, ' '), Is.EqualTo("ABC"));
|
||||
Assert.That("ABCD".PadLeft(3, ' '), Is.EqualTo("ABCD"));
|
||||
|
||||
// Leading zeroes.
|
||||
Assert.AreEqual("00", "".PadLeft(2, '0'));
|
||||
Assert.AreEqual("01", "1".PadLeft(2, '0'));
|
||||
Assert.AreEqual("123", "123".PadLeft(3, '0'));
|
||||
Assert.AreEqual("0123", "123".PadLeft(4, '0'));
|
||||
Assert.AreEqual("00123", "123".PadLeft(5, '0'));
|
||||
Assert.That("".PadLeft(2, '0'), Is.EqualTo("00"));
|
||||
Assert.That("1".PadLeft(2, '0'), Is.EqualTo("01"));
|
||||
Assert.That("123".PadLeft(3, '0'), Is.EqualTo("123"));
|
||||
Assert.That("123".PadLeft(4, '0'), Is.EqualTo("0123"));
|
||||
Assert.That("123".PadLeft(5, '0'), Is.EqualTo("00123"));
|
||||
}
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringUtil_PadRight()
|
||||
{
|
||||
// Leading spaces.
|
||||
Assert.AreEqual(" ", "".PadRight(3, ' '));
|
||||
Assert.AreEqual("A ", "A".PadRight(3, ' '));
|
||||
Assert.AreEqual("AB ", "AB".PadRight(3, ' '));
|
||||
Assert.AreEqual("ABC", "ABC".PadRight(3, ' '));
|
||||
Assert.AreEqual("ABCD", "ABCD".PadRight(3, ' '));
|
||||
Assert.That("".PadRight(3, ' '), Is.EqualTo(" "));
|
||||
Assert.That("A".PadRight(3, ' '), Is.EqualTo("A "));
|
||||
Assert.That("AB".PadRight(3, ' '), Is.EqualTo("AB "));
|
||||
Assert.That("ABC".PadRight(3, ' '), Is.EqualTo("ABC"));
|
||||
Assert.That("ABCD".PadRight(3, ' '), Is.EqualTo("ABCD"));
|
||||
|
||||
// Trailing zeroes.
|
||||
Assert.AreEqual("00", "".PadRight(2, '0'));
|
||||
Assert.AreEqual("10", "1".PadRight(2, '0'));
|
||||
Assert.AreEqual("12", "12".PadRight(2, '0'));
|
||||
Assert.AreEqual("123", "123".PadRight(3, '0'));
|
||||
Assert.AreEqual("1230", "123".PadRight(4, '0'));
|
||||
Assert.AreEqual("12300", "123".PadRight(5, '0'));
|
||||
Assert.That("".PadRight(2, '0'), Is.EqualTo("00"));
|
||||
Assert.That("1".PadRight(2, '0'), Is.EqualTo("10"));
|
||||
Assert.That("12".PadRight(2, '0'), Is.EqualTo("12"));
|
||||
Assert.That("123".PadRight(3, '0'), Is.EqualTo("123"));
|
||||
Assert.That("123".PadRight(4, '0'), Is.EqualTo("1230"));
|
||||
Assert.That("123".PadRight(5, '0'), Is.EqualTo("12300"));
|
||||
}
|
||||
|
||||
// --- Safe Substrings ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void StringUtil_SubstringSafe()
|
||||
{
|
||||
Assert.AreEqual("", StringUtil.SubstringSafe(null, 0));
|
||||
Assert.AreEqual("", StringUtil.SubstringSafe("", 0));
|
||||
Assert.AreEqual("", "".SubstringSafe(0));
|
||||
Assert.That(StringUtil.SubstringSafe(null, 0), Is.Empty);
|
||||
Assert.That(StringUtil.SubstringSafe("", 0), Is.Empty);
|
||||
Assert.That("".SubstringSafe(0), Is.Empty);
|
||||
|
||||
// Right portion from start position.
|
||||
Assert.AreEqual("abc", "abc".SubstringSafe(-3));
|
||||
Assert.AreEqual("abc", "abc".SubstringSafe(-2));
|
||||
Assert.AreEqual("abc", "abc".SubstringSafe(-1));
|
||||
Assert.AreEqual("abc", "abc".SubstringSafe(0));
|
||||
Assert.AreEqual("bc", "abc".SubstringSafe(1));
|
||||
Assert.AreEqual("c", "abc".SubstringSafe(2));
|
||||
Assert.AreEqual("", "abc".SubstringSafe(3));
|
||||
Assert.That("abc".SubstringSafe(-3), Is.EqualTo("abc"));
|
||||
Assert.That("abc".SubstringSafe(-2), Is.EqualTo("abc"));
|
||||
Assert.That("abc".SubstringSafe(-1), Is.EqualTo("abc"));
|
||||
Assert.That("abc".SubstringSafe(0), Is.EqualTo("abc"));
|
||||
Assert.That("abc".SubstringSafe(1), Is.EqualTo("bc"));
|
||||
Assert.That("abc".SubstringSafe(2), Is.EqualTo("c"));
|
||||
Assert.That("abc".SubstringSafe(3), Is.Empty);
|
||||
|
||||
// Zero length.
|
||||
Assert.AreEqual("", StringUtil.SubstringSafe(null, 0, 0));
|
||||
Assert.AreEqual("", StringUtil.SubstringSafe("", 0, 0));
|
||||
Assert.AreEqual("", "".SubstringSafe(0, 0));
|
||||
Assert.AreEqual("", "abc".SubstringSafe(-1, 0));
|
||||
Assert.AreEqual("", "abc".SubstringSafe(0, 0));
|
||||
Assert.AreEqual("", "abc".SubstringSafe(1, 0));
|
||||
Assert.AreEqual("", "abc".SubstringSafe(2, 0));
|
||||
Assert.AreEqual("", "abc".SubstringSafe(3, 0));
|
||||
Assert.AreEqual("", "abc".SubstringSafe(4, 0));
|
||||
Assert.That(StringUtil.SubstringSafe(null, 0, 0), Is.Empty);
|
||||
Assert.That(StringUtil.SubstringSafe("", 0, 0), Is.Empty);
|
||||
Assert.That("".SubstringSafe(0, 0), Is.Empty);
|
||||
Assert.That("abc".SubstringSafe(-1, 0), Is.Empty);
|
||||
Assert.That("abc".SubstringSafe(0, 0), Is.Empty);
|
||||
Assert.That("abc".SubstringSafe(1, 0), Is.Empty);
|
||||
Assert.That("abc".SubstringSafe(2, 0), Is.Empty);
|
||||
Assert.That("abc".SubstringSafe(3, 0), Is.Empty);
|
||||
Assert.That("abc".SubstringSafe(4, 0), Is.Empty);
|
||||
|
||||
// Mid portion.
|
||||
Assert.AreEqual("abc", "abcde".SubstringSafe(0, 3));
|
||||
Assert.AreEqual("bcd", "abcde".SubstringSafe(1, 3));
|
||||
Assert.AreEqual("cde", "abcde".SubstringSafe(2, 3));
|
||||
Assert.That("abcde".SubstringSafe(0, 3), Is.EqualTo("abc"));
|
||||
Assert.That("abcde".SubstringSafe(1, 3), Is.EqualTo("bcd"));
|
||||
Assert.That("abcde".SubstringSafe(2, 3), Is.EqualTo("cde"));
|
||||
|
||||
// Excessive length.
|
||||
Assert.AreEqual("abcde", "abcde".SubstringSafe(-1, 12));
|
||||
Assert.AreEqual("abcde", "abcde".SubstringSafe(0, 12));
|
||||
Assert.AreEqual("bcde", "abcde".SubstringSafe(1, 12));
|
||||
Assert.AreEqual("cde", "abcde".SubstringSafe(2, 12));
|
||||
Assert.AreEqual("de", "abcde".SubstringSafe(3, 12));
|
||||
Assert.AreEqual("e", "abcde".SubstringSafe(4, 12));
|
||||
Assert.AreEqual("", "abcde".SubstringSafe(5, 12));
|
||||
Assert.That("abcde".SubstringSafe(-1, 12), Is.EqualTo("abcde"));
|
||||
Assert.That("abcde".SubstringSafe(0, 12), Is.EqualTo("abcde"));
|
||||
Assert.That("abcde".SubstringSafe(1, 12), Is.EqualTo("bcde"));
|
||||
Assert.That("abcde".SubstringSafe(2, 12), Is.EqualTo("cde"));
|
||||
Assert.That("abcde".SubstringSafe(3, 12), Is.EqualTo("de"));
|
||||
Assert.That("abcde".SubstringSafe(4, 12), Is.EqualTo("e"));
|
||||
Assert.That("abcde".SubstringSafe(5, 12), Is.Empty);
|
||||
}
|
||||
// --- The End ---
|
||||
}
|
||||
|
||||
@@ -1,111 +1,102 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Reflection;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
|
||||
namespace Sarand.UnitTests.Core.Base.Utils
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SysUtil_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// --- Data Members ---
|
||||
|
||||
private static readonly String ClassName_GeneratedMemberName_Prefix = "<";
|
||||
private static readonly String ClassName_CompilerGeneratedClass = ClassName_GeneratedMemberName_Prefix + ">c";
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Calling code class name.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void SysUtil_GetCallerClassName_Test()
|
||||
{
|
||||
// Leading spaces.
|
||||
Assert.AreNotEqual(null, SysUtil.GetCallerClassName());
|
||||
Assert.AreNotEqual("", SysUtil.GetCallerClassName());
|
||||
Assert.AreEqual("SysUtil_Tester", SysUtil.GetCallerClassName());
|
||||
Assert.That(SysUtil.GetCallerClassName(), Is.Not.EqualTo(null));
|
||||
Assert.That(SysUtil.GetCallerClassName(), Is.Not.Empty);
|
||||
Assert.That(SysUtil.GetCallerClassName(), Is.EqualTo("SysUtil_Tester"));
|
||||
|
||||
// Compiler generated context.
|
||||
Func<string> temp = () => { return SysUtil.GetCallerClassName(); };
|
||||
Assert.AreEqual(ClassName_CompilerGeneratedClass, temp());
|
||||
Assert.That(temp(), Is.EqualTo(ClassName_CompilerGeneratedClass));
|
||||
|
||||
// Anonymous function.
|
||||
Assert.AreEqual(ClassName_CompilerGeneratedClass, ((Func<string>)(() => SysUtil.GetCallerClassName()))());
|
||||
Assert.AreEqual(ClassName_CompilerGeneratedClass, new Func<string>(() => SysUtil.GetCallerClassName())());
|
||||
Assert.That(((Func<string>)(() => SysUtil.GetCallerClassName()))(), Is.EqualTo(ClassName_CompilerGeneratedClass));
|
||||
Assert.That(new Func<string>(() => SysUtil.GetCallerClassName())(), Is.EqualTo(ClassName_CompilerGeneratedClass));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Calling code function name.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysUtil_GetCallerMemberName_Test()
|
||||
{
|
||||
// Leading spaces.
|
||||
Assert.AreNotEqual(null, SysUtil.GetCallerMemberName());
|
||||
Assert.AreNotEqual("", SysUtil.GetCallerMemberName());
|
||||
Assert.AreEqual("SysUtil_GetCallerMemberName_Test", SysUtil.GetCallerMemberName());
|
||||
Assert.AreEqual(nameof(SysUtil_GetCallerMemberName_Test), SysUtil.GetCallerMemberName());
|
||||
Assert.AreEqual(MethodBase.GetCurrentMethod().Name, SysUtil.GetCallerMemberName());
|
||||
Assert.That(SysUtil.GetCallerMemberName(), Is.Not.EqualTo(null));
|
||||
Assert.That(SysUtil.GetCallerMemberName(), Is.Not.Empty);
|
||||
Assert.That(SysUtil.GetCallerMemberName(), Is.EqualTo("SysUtil_GetCallerMemberName_Test"));
|
||||
Assert.That(SysUtil.GetCallerMemberName(), Is.EqualTo(nameof(SysUtil_GetCallerMemberName_Test)));
|
||||
Assert.That(SysUtil.GetCallerMemberName(), Is.EqualTo(MethodBase.GetCurrentMethod().Name));
|
||||
|
||||
// Compiler generated context.
|
||||
Func<string> temp = () => { return SysUtil.GetCallerMemberName(); };
|
||||
Assert.AreEqual(MethodBase.GetCurrentMethod().Name, temp());
|
||||
Assert.That(temp(), Is.EqualTo(MethodBase.GetCurrentMethod().Name));
|
||||
|
||||
// Anonymous function.
|
||||
Assert.AreEqual(MethodBase.GetCurrentMethod().Name, ((Func<string>)(() => SysUtil.GetCallerMemberName()))());
|
||||
Assert.AreEqual(MethodBase.GetCurrentMethod().Name, new Func<string>(() => SysUtil.GetCallerMemberName())());
|
||||
Assert.That(((Func<string>)(() => SysUtil.GetCallerMemberName()))(), Is.EqualTo(MethodBase.GetCurrentMethod().Name));
|
||||
Assert.That(new Func<string>(() => SysUtil.GetCallerMemberName())(), Is.EqualTo(MethodBase.GetCurrentMethod().Name));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Calling code file path.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysUtil_GetCallerFilePath_Test()
|
||||
{
|
||||
// Leading spaces.
|
||||
Assert.AreNotEqual(null, SysUtil.GetCallerFilePath());
|
||||
Assert.AreNotEqual("", SysUtil.GetCallerFilePath());
|
||||
Assert.AreEqual(@"D:\Sarand\Projects\Users\AHoward\VS2022\Common-VS\Workspace\SacsCoreUnitTests\Standard\Base\Utils\SysUtil_Tester.cs", SysUtil.GetCallerFilePath());
|
||||
Assert.AreEqual(true, SysUtil.GetCallerFilePath().EndsWith("SysUtil_Tester.cs"));
|
||||
Assert.That(SysUtil.GetCallerFilePath(), Is.Not.EqualTo(null));
|
||||
Assert.That(SysUtil.GetCallerFilePath(), Is.Not.Empty);
|
||||
Assert.That(SysUtil.GetCallerFilePath(), Is.EqualTo(@"D:\Sarand\Projects\Users\AHoward\VS2022\Common-VS\Workspace\SacsCoreUnitTests\Standard\Base\Utils\SysUtil_Tester.cs"));
|
||||
Assert.That(SysUtil.GetCallerFilePath().EndsWith("SysUtil_Tester.cs"), Is.EqualTo(true));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Calling code line number.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysUtil_GetCallerLineNumber_Test()
|
||||
{
|
||||
// Leading spaces.
|
||||
Assert.AreNotEqual(0, SysUtil.GetCallerLineNumber());
|
||||
Assert.AreEqual((new StackFrame(0, true)).GetFileLineNumber(), SysUtil.GetCallerLineNumber());
|
||||
Assert.That(SysUtil.GetCallerLineNumber(), Is.Not.EqualTo(0));
|
||||
Assert.That(SysUtil.GetCallerLineNumber(), Is.EqualTo((new StackFrame(0, true)).GetFileLineNumber()));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Calling code file path.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysUtil_GetCallerClassMethod_Test()
|
||||
{
|
||||
// Leading spaces.
|
||||
Assert.AreNotEqual(null, SysUtil.GetCallerClassMethod());
|
||||
Assert.AreNotEqual("", SysUtil.GetCallerClassMethod());
|
||||
Assert.AreEqual(GetType().Name + "." + MethodBase.GetCurrentMethod().Name, SysUtil.GetCallerClassMethod());
|
||||
Assert.AreEqual(nameof(SysUtil_Tester) + "." + nameof(SysUtil_GetCallerClassMethod_Test), SysUtil.GetCallerClassMethod());
|
||||
Assert.That(SysUtil.GetCallerClassMethod(), Is.Not.EqualTo(null));
|
||||
Assert.That(SysUtil.GetCallerClassMethod(), Is.Not.Empty);
|
||||
Assert.That(SysUtil.GetCallerClassMethod(), Is.EqualTo(GetType().Name + "." + MethodBase.GetCurrentMethod().Name));
|
||||
Assert.That(SysUtil.GetCallerClassMethod(), Is.EqualTo(nameof(SysUtil_Tester) + "." + nameof(SysUtil_GetCallerClassMethod_Test)));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Calling code file path.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SysUtil_Fn_Test()
|
||||
{
|
||||
// Leading spaces.
|
||||
Assert.AreNotEqual(null, SysUtil.Fn);
|
||||
Assert.AreNotEqual("", SysUtil.Fn);
|
||||
Assert.AreEqual(GetType().Name + "." + MethodBase.GetCurrentMethod().Name, SysUtil.Fn);
|
||||
Assert.AreEqual(nameof(SysUtil_Tester) + "." + nameof(SysUtil_Fn_Test), SysUtil.Fn);
|
||||
Assert.That(SysUtil.Fn, Is.Not.EqualTo(null));
|
||||
Assert.That(SysUtil.Fn, Is.Not.Empty);
|
||||
Assert.That(SysUtil.Fn, Is.EqualTo(GetType().Name + "." + MethodBase.GetCurrentMethod().Name));
|
||||
Assert.That(SysUtil.Fn, Is.EqualTo(nameof(SysUtil_Tester) + "." + nameof(SysUtil_Fn_Test)));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using NPOI.HSSF.UserModel;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Proc.Excel;
|
||||
@@ -7,74 +7,74 @@ using System.IO;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Proc.Excel
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SaMsSpreadsheet_POI_Tester
|
||||
{
|
||||
// --- Workbook Lifecycle ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void CreateWorkbook_CreatesDefaultWorksheet()
|
||||
{
|
||||
using (SaMsSpreadsheet_POI spreadsheet = new SaMsSpreadsheet_POI())
|
||||
{
|
||||
Assert.IsTrue(spreadsheet.CreateWorkbook());
|
||||
Assert.IsTrue(spreadsheet.IsWorkbookValid());
|
||||
Assert.IsTrue(spreadsheet.IsWorksheetValid());
|
||||
Assert.AreEqual((uint)1, spreadsheet.WorksheetCount);
|
||||
Assert.AreEqual((uint)1, spreadsheet.WorksheetPos);
|
||||
Assert.AreEqual("Sheet1", spreadsheet.WorksheetName);
|
||||
Assert.That(spreadsheet.CreateWorkbook(), Is.True);
|
||||
Assert.That(spreadsheet.IsWorkbookValid(), Is.True);
|
||||
Assert.That(spreadsheet.IsWorksheetValid(), Is.True);
|
||||
Assert.That(spreadsheet.WorksheetCount, Is.EqualTo((uint)1));
|
||||
Assert.That(spreadsheet.WorksheetPos, Is.EqualTo((uint)1));
|
||||
Assert.That(spreadsheet.WorksheetName, Is.EqualTo("Sheet1"));
|
||||
}
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void CloseWorkbook_InvalidatesWorkbookAndWorksheet()
|
||||
{
|
||||
using (SaMsSpreadsheet_POI spreadsheet = CreateSpreadsheet())
|
||||
{
|
||||
Assert.IsTrue(spreadsheet.CloseWorkbook());
|
||||
Assert.IsFalse(spreadsheet.IsWorkbookValid());
|
||||
Assert.IsFalse(spreadsheet.IsWorksheetValid());
|
||||
Assert.That(spreadsheet.CloseWorkbook(), Is.True);
|
||||
Assert.That(spreadsheet.IsWorkbookValid(), Is.False);
|
||||
Assert.That(spreadsheet.IsWorksheetValid(), Is.False);
|
||||
}
|
||||
}
|
||||
|
||||
// --- Worksheet Operations ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void WorksheetOperations_AddOpenRenameAndRemoveWorksheets()
|
||||
{
|
||||
using (SaMsSpreadsheet_POI spreadsheet = CreateSpreadsheet())
|
||||
{
|
||||
spreadsheet.WorksheetName = "Primary";
|
||||
Assert.IsTrue(spreadsheet.AddWorksheet("Secondary"));
|
||||
Assert.AreEqual((uint)2, spreadsheet.WorksheetCount);
|
||||
Assert.AreEqual("Secondary", spreadsheet.WorksheetName);
|
||||
Assert.That(spreadsheet.AddWorksheet("Secondary"), Is.True);
|
||||
Assert.That(spreadsheet.WorksheetCount, Is.EqualTo((uint)2));
|
||||
Assert.That(spreadsheet.WorksheetName, Is.EqualTo("Secondary"));
|
||||
|
||||
Assert.IsTrue(spreadsheet.OpenWorksheet(" primary "));
|
||||
Assert.AreEqual((uint)1, spreadsheet.WorksheetPos);
|
||||
Assert.AreEqual("Primary", spreadsheet.WorksheetName);
|
||||
Assert.That(spreadsheet.OpenWorksheet(" primary "), Is.True);
|
||||
Assert.That(spreadsheet.WorksheetPos, Is.EqualTo((uint)1));
|
||||
Assert.That(spreadsheet.WorksheetName, Is.EqualTo("Primary"));
|
||||
|
||||
Assert.IsTrue(spreadsheet.RemoveWorksheet(2));
|
||||
Assert.AreEqual((uint)1, spreadsheet.WorksheetCount);
|
||||
Assert.That(spreadsheet.RemoveWorksheet(2), Is.True);
|
||||
Assert.That(spreadsheet.WorksheetCount, Is.EqualTo((uint)1));
|
||||
}
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SetWorksheetCount_AddsAndRemovesWorksheets()
|
||||
{
|
||||
using (SaMsSpreadsheet_POI spreadsheet = CreateSpreadsheet())
|
||||
{
|
||||
Assert.IsTrue(spreadsheet.SetWorksheetCount(3));
|
||||
Assert.AreEqual((uint)3, spreadsheet.WorksheetCount);
|
||||
Assert.That(spreadsheet.SetWorksheetCount(3), Is.True);
|
||||
Assert.That(spreadsheet.WorksheetCount, Is.EqualTo((uint)3));
|
||||
|
||||
Assert.IsTrue(spreadsheet.SetWorksheetCount(1));
|
||||
Assert.AreEqual((uint)1, spreadsheet.WorksheetCount);
|
||||
Assert.AreEqual((uint)1, spreadsheet.WorksheetPos);
|
||||
Assert.That(spreadsheet.SetWorksheetCount(1), Is.True);
|
||||
Assert.That(spreadsheet.WorksheetCount, Is.EqualTo((uint)1));
|
||||
Assert.That(spreadsheet.WorksheetPos, Is.EqualTo((uint)1));
|
||||
}
|
||||
}
|
||||
|
||||
// --- Workbook Round Trips ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void GetDocumentData_RoundTripPreservesCellValuesAndFormula()
|
||||
{
|
||||
DateTime expectedDate = new DateTime(2026, 9, 12, 14, 30, 0);
|
||||
@@ -86,49 +86,49 @@ namespace Sacs.UnitTests.Net.Standard.Proc.Excel
|
||||
byte[] workbookData;
|
||||
using (SaMsSpreadsheet_POI spreadsheet = CreateSpreadsheet())
|
||||
{
|
||||
Assert.IsTrue(spreadsheet.SetCellValue(1, 1, new DataValue("Heading"), null));
|
||||
Assert.IsTrue(spreadsheet.SetCellValue(1, 2, new DataValue("Text value"), null));
|
||||
Assert.IsTrue(spreadsheet.SetCellValue(2, 2, new DataValue(42L), null));
|
||||
Assert.IsTrue(spreadsheet.SetCellValue(3, 2, new DataValue(12.5), null));
|
||||
Assert.IsTrue(spreadsheet.SetCellValue(4, 2, new DataValue(true), null));
|
||||
Assert.IsTrue(spreadsheet.SetCellValue(5, 2, new DataValue(expectedDate), dateStyle));
|
||||
Assert.IsTrue(spreadsheet.SetCellFormula(6, 2, "B2+C2", null));
|
||||
Assert.That(spreadsheet.SetCellValue(1, 1, new DataValue("Heading"), null), Is.True);
|
||||
Assert.That(spreadsheet.SetCellValue(1, 2, new DataValue("Text value"), null), Is.True);
|
||||
Assert.That(spreadsheet.SetCellValue(2, 2, new DataValue(42L), null), Is.True);
|
||||
Assert.That(spreadsheet.SetCellValue(3, 2, new DataValue(12.5), null), Is.True);
|
||||
Assert.That(spreadsheet.SetCellValue(4, 2, new DataValue(true), null), Is.True);
|
||||
Assert.That(spreadsheet.SetCellValue(5, 2, new DataValue(expectedDate), dateStyle), Is.True);
|
||||
Assert.That(spreadsheet.SetCellFormula(6, 2, "B2+C2", null), Is.True);
|
||||
workbookData = spreadsheet.GetDocumentData();
|
||||
}
|
||||
|
||||
Assert.IsNotNull(workbookData);
|
||||
Assert.IsTrue(workbookData.Length > 0);
|
||||
Assert.That(workbookData, Is.Not.Null);
|
||||
Assert.That(workbookData.Length > 0, Is.True);
|
||||
|
||||
using (SaMsSpreadsheet_POI spreadsheet = new SaMsSpreadsheet_POI())
|
||||
{
|
||||
Assert.IsTrue(spreadsheet.OpenWorkbook(workbookData));
|
||||
Assert.IsTrue(spreadsheet.OpenWorksheet(1));
|
||||
Assert.AreEqual("Text value", spreadsheet.GetCellText(1, 2));
|
||||
Assert.AreEqual(42L, spreadsheet.GetCellValue(2, 2).AsLong());
|
||||
Assert.AreEqual(12.5, spreadsheet.GetCellValue(3, 2).AsDouble(), 0.000001);
|
||||
Assert.AreEqual("TRUE", spreadsheet.GetCellText(4, 2).ToUpperInvariant());
|
||||
Assert.AreEqual(expectedDate, spreadsheet.GetCellValue(5, 2).AsDateTime());
|
||||
Assert.AreEqual("B2+C2", spreadsheet.GetCellFormula(6, 2));
|
||||
Assert.That(spreadsheet.OpenWorkbook(workbookData), Is.True);
|
||||
Assert.That(spreadsheet.OpenWorksheet(1), Is.True);
|
||||
Assert.That(spreadsheet.GetCellText(1, 2), Is.EqualTo("Text value"));
|
||||
Assert.That(spreadsheet.GetCellValue(2, 2).AsLong(), Is.EqualTo(42L));
|
||||
Assert.That(spreadsheet.GetCellValue(3, 2).AsDouble(), Is.EqualTo(12.5).Within(0.000001));
|
||||
Assert.That(spreadsheet.GetCellText(4, 2).ToUpperInvariant(), Is.EqualTo("TRUE"));
|
||||
Assert.That(spreadsheet.GetCellValue(5, 2).AsDateTime(), Is.EqualTo(expectedDate));
|
||||
Assert.That(spreadsheet.GetCellFormula(6, 2), Is.EqualTo("B2+C2"));
|
||||
}
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void GetCellValue_TextCellReturnsStringDataValue()
|
||||
{
|
||||
using (SaMsSpreadsheet_POI spreadsheet = CreateSpreadsheet())
|
||||
{
|
||||
Assert.IsTrue(spreadsheet.SetCellValue(1, 1, new DataValue("Text value"), null));
|
||||
Assert.AreEqual("Text value", spreadsheet.GetCellValue(1, 1).AsString());
|
||||
Assert.That(spreadsheet.SetCellValue(1, 1, new DataValue("Text value"), null), Is.True);
|
||||
Assert.That(spreadsheet.GetCellValue(1, 1).AsString(), Is.EqualTo("Text value"));
|
||||
}
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void OpenWorkbook_StreamReadsFromStartRegardlessOfPosition()
|
||||
{
|
||||
byte[] workbookData;
|
||||
using (SaMsSpreadsheet_POI spreadsheet = CreateSpreadsheet())
|
||||
{
|
||||
Assert.IsTrue(spreadsheet.SetCellValue(1, 1, new DataValue("Stream value"), null));
|
||||
Assert.That(spreadsheet.SetCellValue(1, 1, new DataValue("Stream value"), null), Is.True);
|
||||
workbookData = spreadsheet.GetDocumentData();
|
||||
}
|
||||
|
||||
@@ -136,39 +136,39 @@ namespace Sacs.UnitTests.Net.Standard.Proc.Excel
|
||||
using (SaMsSpreadsheet_POI spreadsheet = new SaMsSpreadsheet_POI())
|
||||
{
|
||||
stream.Position = stream.Length;
|
||||
Assert.IsTrue(spreadsheet.OpenWorkbook(stream));
|
||||
Assert.IsTrue(spreadsheet.OpenWorksheet(1));
|
||||
Assert.AreEqual("Stream value", spreadsheet.GetCellText(1, 1));
|
||||
Assert.That(spreadsheet.OpenWorkbook(stream), Is.True);
|
||||
Assert.That(spreadsheet.OpenWorksheet(1), Is.True);
|
||||
Assert.That(spreadsheet.GetCellText(1, 1), Is.EqualTo("Stream value"));
|
||||
}
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void OpenWorkbook_LegacyXlsDataCanBeReadAndReserialized()
|
||||
{
|
||||
byte[] workbookData = CreateLegacyWorkbookData();
|
||||
|
||||
using (SaMsSpreadsheet_POI spreadsheet = new SaMsSpreadsheet_POI())
|
||||
{
|
||||
Assert.IsTrue(spreadsheet.OpenWorkbook(workbookData));
|
||||
Assert.IsTrue(spreadsheet.OpenWorksheet("Legacy"));
|
||||
Assert.AreEqual("Legacy value", spreadsheet.GetCellValue(1, 1).AsString());
|
||||
Assert.AreEqual(17L, spreadsheet.GetCellValue(2, 1).AsLong());
|
||||
Assert.That(spreadsheet.OpenWorkbook(workbookData), Is.True);
|
||||
Assert.That(spreadsheet.OpenWorksheet("Legacy"), Is.True);
|
||||
Assert.That(spreadsheet.GetCellValue(1, 1).AsString(), Is.EqualTo("Legacy value"));
|
||||
Assert.That(spreadsheet.GetCellValue(2, 1).AsLong(), Is.EqualTo(17L));
|
||||
|
||||
byte[] roundTripData = spreadsheet.GetDocumentData();
|
||||
Assert.IsNotNull(roundTripData);
|
||||
Assert.That(roundTripData, Is.Not.Null);
|
||||
|
||||
using (SaMsSpreadsheet_POI reopened = new SaMsSpreadsheet_POI())
|
||||
{
|
||||
Assert.IsTrue(reopened.OpenWorkbook(roundTripData));
|
||||
Assert.IsTrue(reopened.OpenWorksheet("Legacy"));
|
||||
Assert.AreEqual("Legacy value", reopened.GetCellValue(1, 1).AsString());
|
||||
Assert.That(reopened.OpenWorkbook(roundTripData), Is.True);
|
||||
Assert.That(reopened.OpenWorksheet("Legacy"), Is.True);
|
||||
Assert.That(reopened.GetCellValue(1, 1).AsString(), Is.EqualTo("Legacy value"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --- Formatting and Dimensions ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void DimensionsAndActiveCell_RoundTripPreservesValues()
|
||||
{
|
||||
byte[] workbookData;
|
||||
@@ -176,8 +176,8 @@ namespace Sacs.UnitTests.Net.Standard.Proc.Excel
|
||||
double expectedRowHeight;
|
||||
using (SaMsSpreadsheet_POI spreadsheet = CreateSpreadsheet())
|
||||
{
|
||||
Assert.IsTrue(spreadsheet.SetColWidth(2, 120, SaExcelLogicalUnit.Pixel));
|
||||
Assert.IsTrue(spreadsheet.SetRowHeight(3, 24, SaExcelLogicalUnit.Point));
|
||||
Assert.That(spreadsheet.SetColWidth(2, 120, SaExcelLogicalUnit.Pixel), Is.True);
|
||||
Assert.That(spreadsheet.SetRowHeight(3, 24, SaExcelLogicalUnit.Point), Is.True);
|
||||
spreadsheet.SetActiveCell(2, 3);
|
||||
expectedColWidth = spreadsheet.GetColWidth(2, SaExcelLogicalUnit.Pixel);
|
||||
expectedRowHeight = spreadsheet.GetRowHeight(3, SaExcelLogicalUnit.Point);
|
||||
@@ -186,18 +186,18 @@ namespace Sacs.UnitTests.Net.Standard.Proc.Excel
|
||||
|
||||
using (SaMsSpreadsheet_POI spreadsheet = new SaMsSpreadsheet_POI())
|
||||
{
|
||||
Assert.IsTrue(spreadsheet.OpenWorkbook(workbookData));
|
||||
Assert.IsTrue(spreadsheet.OpenWorksheet(1));
|
||||
Assert.AreEqual(expectedColWidth, spreadsheet.GetColWidth(2, SaExcelLogicalUnit.Pixel), 0.1);
|
||||
Assert.AreEqual(expectedRowHeight, spreadsheet.GetRowHeight(3, SaExcelLogicalUnit.Point), 0.1);
|
||||
Assert.AreEqual((uint)2, spreadsheet.ActiveColPos);
|
||||
Assert.AreEqual((uint)3, spreadsheet.ActiveRowPos);
|
||||
Assert.That(spreadsheet.OpenWorkbook(workbookData), Is.True);
|
||||
Assert.That(spreadsheet.OpenWorksheet(1), Is.True);
|
||||
Assert.That(spreadsheet.GetColWidth(2, SaExcelLogicalUnit.Pixel), Is.EqualTo(expectedColWidth).Within(0.1));
|
||||
Assert.That(spreadsheet.GetRowHeight(3, SaExcelLogicalUnit.Point), Is.EqualTo(expectedRowHeight).Within(0.1));
|
||||
Assert.That(spreadsheet.ActiveColPos, Is.EqualTo((uint)2));
|
||||
Assert.That(spreadsheet.ActiveRowPos, Is.EqualTo((uint)3));
|
||||
}
|
||||
}
|
||||
|
||||
// --- File Persistence ---
|
||||
|
||||
[TestMethod]
|
||||
[Test]
|
||||
public void SaveDocument_FileRoundTripPreservesWorkbook()
|
||||
{
|
||||
String testDirectory = CreateTestDirectory();
|
||||
@@ -208,18 +208,18 @@ namespace Sacs.UnitTests.Net.Standard.Proc.Excel
|
||||
using (SaMsSpreadsheet_POI spreadsheet = CreateSpreadsheet())
|
||||
{
|
||||
spreadsheet.WorksheetName = "Saved";
|
||||
Assert.IsTrue(spreadsheet.SetCellValue(1, 1, new DataValue("Saved value"), null));
|
||||
Assert.IsTrue(spreadsheet.SaveDocument(workbookPath, (int)SaXlFileFormat.OpenXMLWorkbook, true));
|
||||
Assert.That(spreadsheet.SetCellValue(1, 1, new DataValue("Saved value"), null), Is.True);
|
||||
Assert.That(spreadsheet.SaveDocument(workbookPath, (int)SaXlFileFormat.OpenXMLWorkbook, true), Is.True);
|
||||
}
|
||||
|
||||
Assert.IsTrue(File.Exists(workbookPath));
|
||||
Assert.IsTrue(new FileInfo(workbookPath).Length > 0);
|
||||
Assert.That(File.Exists(workbookPath), Is.True);
|
||||
Assert.That(new FileInfo(workbookPath).Length > 0, Is.True);
|
||||
|
||||
using (SaMsSpreadsheet_POI spreadsheet = new SaMsSpreadsheet_POI())
|
||||
{
|
||||
Assert.IsTrue(spreadsheet.OpenWorkbook(workbookPath));
|
||||
Assert.IsTrue(spreadsheet.OpenWorksheet("Saved"));
|
||||
Assert.AreEqual("Saved value", spreadsheet.GetCellText(1, 1));
|
||||
Assert.That(spreadsheet.OpenWorkbook(workbookPath), Is.True);
|
||||
Assert.That(spreadsheet.OpenWorksheet("Saved"), Is.True);
|
||||
Assert.That(spreadsheet.GetCellText(1, 1), Is.EqualTo("Saved value"));
|
||||
}
|
||||
}
|
||||
finally
|
||||
@@ -234,7 +234,7 @@ namespace Sacs.UnitTests.Net.Standard.Proc.Excel
|
||||
private static SaMsSpreadsheet_POI CreateSpreadsheet()
|
||||
{
|
||||
SaMsSpreadsheet_POI spreadsheet = new SaMsSpreadsheet_POI();
|
||||
Assert.IsTrue(spreadsheet.CreateWorkbook());
|
||||
Assert.That(spreadsheet.CreateWorkbook(), Is.True);
|
||||
return spreadsheet;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,42 +1,41 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework;
|
||||
using Sarand.Net.Standard.Proc.Excel;
|
||||
using System;
|
||||
|
||||
namespace Sacs.UnitTests.Net.Standard.Proc.Excel
|
||||
{
|
||||
[TestClass]
|
||||
[TestFixture]
|
||||
public class SaMsSpreadsheet_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// --- Data Members ---
|
||||
|
||||
private Random random = new Random();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// GetPosForColId.
|
||||
//-------------------------------------------------------------------
|
||||
[TestMethod]
|
||||
// --- Tests ---
|
||||
|
||||
[Test]
|
||||
public void GetPosForColId_IsEmpty()
|
||||
{
|
||||
Assert.AreEqual(1, SaMsSpreadsheet.GetPosForColId("A"));
|
||||
Assert.AreEqual(1, SaMsSpreadsheet.GetPosForColId("a"));
|
||||
Assert.AreEqual(2, SaMsSpreadsheet.GetPosForColId("B"));
|
||||
Assert.AreEqual(3, SaMsSpreadsheet.GetPosForColId("C"));
|
||||
Assert.AreEqual(24, SaMsSpreadsheet.GetPosForColId("X"));
|
||||
Assert.AreEqual(25, SaMsSpreadsheet.GetPosForColId("Y"));
|
||||
Assert.AreEqual(26, SaMsSpreadsheet.GetPosForColId("Z"));
|
||||
Assert.AreEqual(27, SaMsSpreadsheet.GetPosForColId("AA"));
|
||||
Assert.AreEqual(28, SaMsSpreadsheet.GetPosForColId("AB"));
|
||||
Assert.AreEqual(29, SaMsSpreadsheet.GetPosForColId("AC"));
|
||||
Assert.AreEqual(128, SaMsSpreadsheet.GetPosForColId("DX"));
|
||||
Assert.AreEqual(155, SaMsSpreadsheet.GetPosForColId("EY"));
|
||||
Assert.AreEqual(182, SaMsSpreadsheet.GetPosForColId("FZ"));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("A"), Is.EqualTo(1));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("a"), Is.EqualTo(1));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("B"), Is.EqualTo(2));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("C"), Is.EqualTo(3));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("X"), Is.EqualTo(24));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("Y"), Is.EqualTo(25));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("Z"), Is.EqualTo(26));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("AA"), Is.EqualTo(27));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("AB"), Is.EqualTo(28));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("AC"), Is.EqualTo(29));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("DX"), Is.EqualTo(128));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("EY"), Is.EqualTo(155));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("FZ"), Is.EqualTo(182));
|
||||
|
||||
// Invalid.
|
||||
Assert.AreEqual(0, SaMsSpreadsheet.GetPosForColId(""));
|
||||
Assert.AreEqual(0, SaMsSpreadsheet.GetPosForColId("1"));
|
||||
Assert.AreEqual(0, SaMsSpreadsheet.GetPosForColId("A1"));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId(""), Is.EqualTo(0));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("1"), Is.EqualTo(0));
|
||||
Assert.That(SaMsSpreadsheet.GetPosForColId("A1"), Is.EqualTo(0));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// --- The End ---
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user