Files
2026-04-20 14:47:24 -05:00

150 lines
4.6 KiB
C#

using Castle.DynamicProxy.Generators;
using LCU.API.Collections.CollectionsApiLib.Models;
using LCU.API.Collections.RepoApi.Domain.Extensions;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.AspNetCore.Mvc.ViewFeatures.Internal;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using Xunit;
using Xunit.Sdk;
namespace LCU.API.Collections.RepoApiTests.Extensions
{
public class TemenosAccountExtensionTest
{
TemenosCase validCase = new TemenosCase()
{
CaseId = 1,
RepoStatus = RepoStatus.REPO,
CaseStatusId = 33
};
TemenosCase invalidStatusCase = new TemenosCase()
{
CaseId = 2,
RepoStatus = RepoStatus.UNKNOWN,
CaseStatusId = 33
};
TemenosCase invalidStatusIdCase = new TemenosCase()
{
CaseId = 3,
RepoStatus = RepoStatus.RECA,
CaseStatusId = 13
};
public List<TemenosCase> validList, invalidStatusList, invalidStatusIdList, emptyList;
TemenosAccount temenosAccount = new TemenosAccount();
public TemenosAccountExtensionTest()
{
validList = new List<TemenosCase> { validCase, invalidStatusCase, invalidStatusIdCase };
invalidStatusIdList = new List<TemenosCase> { invalidStatusIdCase };
invalidStatusList = new List<TemenosCase> { invalidStatusCase };
emptyList = new List<TemenosCase>();
}
[Fact]
public void HasOldIntellectStatus_Ok()
{
temenosAccount.CustomFieldMap = new Dictionary<string, string> { };
Assert.False(temenosAccount.HasOldIntellectStatus());
temenosAccount.CustomFieldMap = new Dictionary<string, string> { { "User Status Code 1", null } };
Assert.False(temenosAccount.HasOldIntellectStatus());
temenosAccount.CustomFieldMap = new Dictionary<string, string> { { "User Status Code 1", "" } };
Assert.False(temenosAccount.HasOldIntellectStatus());
temenosAccount.CustomFieldMap = new Dictionary<string, string> { { "User Status Code 1", "OLDSTATUS" } };
Assert.True(temenosAccount.HasOldIntellectStatus());
}
[Fact]
public void HasOpenRecoveryCase_OK()
{
temenosAccount.Cases = new ReadOnlyCollection<TemenosCase>(validList);
Assert.True(temenosAccount.HasOpenRecoveryCase());
temenosAccount.Cases = new ReadOnlyCollection<TemenosCase>(invalidStatusIdList);
Assert.False(temenosAccount.HasOpenRecoveryCase());
temenosAccount.Cases = new ReadOnlyCollection<TemenosCase>(invalidStatusList);
Assert.False(temenosAccount.HasOpenRecoveryCase());
temenosAccount.Cases = new ReadOnlyCollection<TemenosCase>(emptyList);
Assert.False(temenosAccount.HasOpenRecoveryCase());
}
[Fact]
public void HasSpecificCase_OK()
{
temenosAccount.Cases = new ReadOnlyCollection<TemenosCase>(emptyList);
Assert.False(temenosAccount.HasSpecificCase(1));
temenosAccount.Cases = new ReadOnlyCollection<TemenosCase>(validList);
Assert.True(temenosAccount.HasSpecificCase(1));
Assert.False(temenosAccount.HasSpecificCase(99));
}
[Fact]
public void FindRecoveryCaseOrDefault_OK()
{
temenosAccount.Cases = new ReadOnlyCollection<TemenosCase>(validList);
var res = temenosAccount.FindRecoveryCaseOrDefault(1);
Assert.Equal(validCase, res);
}
[Fact]
public void FindRecoveryCaseOrDefault_Empty_Cases()
{
temenosAccount.Cases = new ReadOnlyCollection<TemenosCase>(emptyList);
var res = temenosAccount.FindRecoveryCaseOrDefault(1);
Assert.Null(res);
temenosAccount.Cases = null;
res = temenosAccount.FindRecoveryCaseOrDefault(1);
Assert.Null(res);
}
[Fact]
public void FindRecoveryCaseOrDefault_Id_Not_Exist()
{
temenosAccount.Cases = new ReadOnlyCollection<TemenosCase>(validList);
var res = temenosAccount.FindRecoveryCaseOrDefault(22);
Assert.Null(res);
}
[Fact]
public void FindRecoveryCaseOrDefault_Id_Points_To_Bad_Case()
{
temenosAccount.Cases = new ReadOnlyCollection<TemenosCase>(validList);
var res = temenosAccount.FindRecoveryCaseOrDefault(2);
Assert.Equal(invalidStatusCase, res);
}
}
}