Files
Common-VS2019/SacsCoreUnitTests/Standard/Base/Bus/SysId_Tester.cs
T

174 lines
4.6 KiB
C#

using NUnit.Framework;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Utils;
using System;
using System.Collections.Generic;
namespace Sacs.UnitTests.Net.Standard.Base.Bus
{
[TestFixture]
public class SysId_Tester
{
// --- 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);
// --- Tests ---
[Test]
public void SysId_CTR_Void ()
{
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);
}
[Test]
public void SysId_CTR_Long ()
{
// Zero - invalid.
Assert.That(new SysId(0), Is.Not.Null);
// 1 - Valid.
Assert.That(new SysId(1), Is.Not.Null);
Assert.That(new SysId(-1), Is.Not.Null);
}
// Is Valid.
[Test]
public void SysId_IsValid ()
{
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.
[Test]
public void SysId_InvalidOnNull ()
{
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);
}
[Test]
public void SysId_Equals_Object ()
{
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);
}
[Test]
public void SysId_Equals_SysId ()
{
// Invalid values always unequal.
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.That(id1.Equals(new SysId(1)), Is.True);
for (int i = 1; i <= 1000; i++)
{
SysId idI = new SysId(i);
for (int j = 1; j <= 1000; j++)
{
SysId idJ = new SysId(j);
if (i == j) Assert.That(idI.Equals(idJ), Is.True);
else Assert.That(idI.Equals(idJ), Is.False);
}
}
}
// --- Lists ---
[Test]
public void SysId_List_GetIdCount ()
{
List<SysId> ids = new List<SysId>()
{
new SysId(),
new SysId(1),
new SysId(2),
new SysId(3),
new SysId(),
new SysId(3),
new SysId(2),
new SysId(1),
new SysId(),
};
// Unique, valid only.
Assert.That(ids.GetIdCount(), Is.EqualTo(3));
Assert.That(ids.GetIdCount(true, true), Is.EqualTo(3));
// Unique including invalid.
Assert.That(ids.GetIdCount(false), Is.EqualTo(4));
Assert.That(ids.GetIdCount(false, true), Is.EqualTo(4));
// Duplicate, valid only.
Assert.That(ids.GetIdCount(true, false), Is.EqualTo(6));
// Duplicate including invalid.
Assert.That(ids.GetIdCount(false, false), Is.EqualTo(9));
}
[Test]
public void SysId_List_HasValidIds ()
{
List<SysId> ids = new List<SysId>();
// Single valid Id.
ids.Clear();
ids.Add(new SysId(123));
Assert.That(ids.HasValidIds(), Is.EqualTo(true));
// Several valid ids.
ids.Clear();
ids.AddRange(new List<SysId>()
{
new SysId(1),
new SysId(2),
new SysId(3),
});
Assert.That(ids.HasValidIds(), Is.EqualTo(true));
// Invalid only.
ids.Clear();
ids.AddRange(new List<SysId>()
{
new SysId(),
new SysId(),
new SysId(),
});
Assert.That(ids.HasValidIds(), Is.EqualTo(false));
// Add valid Id.
ids.Add(new SysId(123));
Assert.That(ids.HasValidIds(), Is.EqualTo(true));
}
// --- The End ---
}
}