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 validList, invalidStatusList, invalidStatusIdList, emptyList; TemenosAccount temenosAccount = new TemenosAccount(); public TemenosAccountExtensionTest() { validList = new List { validCase, invalidStatusCase, invalidStatusIdCase }; invalidStatusIdList = new List { invalidStatusIdCase }; invalidStatusList = new List { invalidStatusCase }; emptyList = new List(); } [Fact] public void HasOldIntellectStatus_Ok() { temenosAccount.CustomFieldMap = new Dictionary { }; Assert.False(temenosAccount.HasOldIntellectStatus()); temenosAccount.CustomFieldMap = new Dictionary { { "User Status Code 1", null } }; Assert.False(temenosAccount.HasOldIntellectStatus()); temenosAccount.CustomFieldMap = new Dictionary { { "User Status Code 1", "" } }; Assert.False(temenosAccount.HasOldIntellectStatus()); temenosAccount.CustomFieldMap = new Dictionary { { "User Status Code 1", "OLDSTATUS" } }; Assert.True(temenosAccount.HasOldIntellectStatus()); } [Fact] public void HasOpenRecoveryCase_OK() { temenosAccount.Cases = new ReadOnlyCollection(validList); Assert.True(temenosAccount.HasOpenRecoveryCase()); temenosAccount.Cases = new ReadOnlyCollection(invalidStatusIdList); Assert.False(temenosAccount.HasOpenRecoveryCase()); temenosAccount.Cases = new ReadOnlyCollection(invalidStatusList); Assert.False(temenosAccount.HasOpenRecoveryCase()); temenosAccount.Cases = new ReadOnlyCollection(emptyList); Assert.False(temenosAccount.HasOpenRecoveryCase()); } [Fact] public void HasSpecificCase_OK() { temenosAccount.Cases = new ReadOnlyCollection(emptyList); Assert.False(temenosAccount.HasSpecificCase(1)); temenosAccount.Cases = new ReadOnlyCollection(validList); Assert.True(temenosAccount.HasSpecificCase(1)); Assert.False(temenosAccount.HasSpecificCase(99)); } [Fact] public void FindRecoveryCaseOrDefault_OK() { temenosAccount.Cases = new ReadOnlyCollection(validList); var res = temenosAccount.FindRecoveryCaseOrDefault(1); Assert.Equal(validCase, res); } [Fact] public void FindRecoveryCaseOrDefault_Empty_Cases() { temenosAccount.Cases = new ReadOnlyCollection(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(validList); var res = temenosAccount.FindRecoveryCaseOrDefault(22); Assert.Null(res); } [Fact] public void FindRecoveryCaseOrDefault_Id_Points_To_Bad_Case() { temenosAccount.Cases = new ReadOnlyCollection(validList); var res = temenosAccount.FindRecoveryCaseOrDefault(2); Assert.Equal(invalidStatusCase, res); } } }