Files
2026-05-04 10:09:55 -05:00

166 lines
5.5 KiB
C#

using System;
using System.Linq;
using LCU.Library.Internal.MemberPreferencesApiModels.Entities;
using LCU.Library.Internal.MemberPreferencesApiModels.Enums;
using NUnit.Framework;
namespace LCU.API.Internal.MemberPreferencesApi.UnitTests
{
public class XdiBatchTest
{
private XdiBatchItem _item;
[SetUp]
public void Setup()
{
_item = new XdiBatchItem()
{
Created = DateTime.Now,
BatchState = BatchState.New,
LastUpdated = DateTime.Now,
UserId = "99"
};
}
[Test]
public void TestEmptyBatch()
{
var batch = new Models.XdiBatch();
var files = batch.GetNonEmptyFiles();
Assert.NotNull(files);
Assert.False(files.Any());
}
[Test]
public void Test_Enrollment_UpdateToPrint()
{
var batch = new Models.XdiBatch();
var settings = new MemberOptInSettings()
{
Id = 1000,
UniversalOptIn = DeliveryPreference.Paper,
ENotifications = DeliveryPreference.Electronic,
EStatements = DeliveryPreference.Electronic,
UnifiedOptInEmail = "[email protected]",
ENotificationsEmail = "[email protected]",
EStatementsEmail = "[email protected]",
LastUpdated = DateTime.Now,
LegalDate = DateTime.Now,
LegalVersion = "1.2.3",
UserId = "99",
CreatedByType = UserType.Associate,
LastUpdatedByType = UserType.System,
CreatedBy = "test",
Created = DateTime.Now,
LastUpdatedBy = "test"
};
var result = batch.ProcessItem(_item, settings);
Assert.True(result);
var files = batch.GetNonEmptyFiles();
Assert.NotNull(files);
Assert.AreEqual(1, files.Count);
Assert.AreEqual(XdiFileType.UpdateMemberToPrint, files.First().Type);
}
[Test]
public void Test_DoNothing()
{
var batch = new Models.XdiBatch();
var settings = new MemberOptInSettings()
{
Id = 1000,
UniversalOptIn = DeliveryPreference.Paper,
ENotifications = null,
EStatements = DeliveryPreference.Electronic,
UnifiedOptInEmail = "[email protected]",
ENotificationsEmail = null,
EStatementsEmail = "[email protected]",
UserId = "99"
};
var result = batch.ProcessItem(_item, settings);
Assert.False(result);
var files = batch.GetNonEmptyFiles();
Assert.NotNull(files);
Assert.False(files.Any());
}
[Test]
public void Test_Enrollment_UpdateToElectronic()
{
var batch = new Models.XdiBatch();
var settings = new MemberOptInSettings()
{
Id = 1000,
UniversalOptIn = DeliveryPreference.Electronic,
ENotifications = DeliveryPreference.Paper,
EStatements = DeliveryPreference.Paper,
UnifiedOptInEmail = "[email protected]",
ENotificationsEmail = "[email protected]",
EStatementsEmail = "[email protected]",
UserId = "99"
};
var result = batch.ProcessItem(_item, settings);
Assert.True(result);
var files = batch.GetNonEmptyFiles();
Assert.NotNull(files);
Assert.AreEqual(1, files.Count);
Assert.AreEqual(XdiFileType.UpdateMemberToElectronic, files.First().Type);
}
[Test]
public void Test_Enrollment_AddElectronic()
{
var batch = new Models.XdiBatch();
var settings = new MemberOptInSettings()
{
Id = 1000,
UniversalOptIn = DeliveryPreference.Electronic,
ENotifications = null,
EStatements = DeliveryPreference.Paper,
UnifiedOptInEmail = "[email protected]",
ENotificationsEmail = null,
EStatementsEmail = null,
UserId = "99"
};
var result = batch.ProcessItem(_item, settings);
Assert.True(result);
var files = batch.GetNonEmptyFiles();
Assert.NotNull(files);
Assert.AreEqual(1, files.Count);
Assert.AreEqual(XdiFileType.AddMemberElectronic, files.First().Type);
}
[Test]
public void Test_Enrollment_UpdateEmail()
{
var batch = new Models.XdiBatch();
var settings = new MemberOptInSettings()
{
Id = 1000,
UniversalOptIn = DeliveryPreference.Electronic,
ENotifications = DeliveryPreference.Electronic,
EStatements = DeliveryPreference.Electronic,
UnifiedOptInEmail = "[email protected]",
ENotificationsEmail = "[email protected]",
EStatementsEmail = "[email protected]",
UserId = "99"
};
var result = batch.ProcessItem(_item, settings);
Assert.True(result);
var files = batch.GetNonEmptyFiles();
Assert.NotNull(files);
Assert.AreEqual(1, files.Count);
Assert.AreEqual(XdiFileType.UpdateMemberEmail, files.First().Type);
}
}
}