219 lines
7.6 KiB
C#
219 lines
7.6 KiB
C#
using System;
|
|
using System.Linq;
|
|
using LCU.Library.Internal.MemberPreferencesApiModels.Entities;
|
|
using LCU.Library.Internal.MemberPreferencesApiModels.Enums;
|
|
using LCU.API.Internal.MemberPreferencesApi.Models;
|
|
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);
|
|
}
|
|
|
|
[Test]
|
|
public void Test_Enrollment_Microfiche()
|
|
{
|
|
var batch = new Models.XdiBatch();
|
|
var settings = new MemberOptInSettings()
|
|
{
|
|
Id = 1000,
|
|
UniversalOptIn = DeliveryPreference.Microfiche,
|
|
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.UpdateMemberToPrint, files.First().Type);
|
|
Assert.AreEqual("[email protected]", files.First().Data.First().Email);
|
|
}
|
|
|
|
[Test]
|
|
public void Test_Enrollment_Hold()
|
|
{
|
|
var batch = new Models.XdiBatch();
|
|
var settings = new MemberOptInSettings()
|
|
{
|
|
Id = 1000,
|
|
UniversalOptIn = DeliveryPreference.Hold,
|
|
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.UpdateMemberToPrint, files.First().Type);
|
|
Assert.AreEqual("[email protected]", files.First().Data.First().Email);
|
|
}
|
|
}
|
|
}
|