using System; using System.Collections.Generic; using Castle.DynamicProxy.Generators; using LCU.API.Collections.CollectionsApiLib.Models; using LCU.API.Collections.RepoApi.Domain; using LCU.API.Collections.RepoApi.Services; using LCU.Shared.Collections.RepoApiLib.Models; using Xunit; namespace LCU.API.Collections.RepoApiTests { public class RedemptionExpiredDateCalculatorTest { private readonly RedemptionExpiredDateCalculator _calculator; public RedemptionExpiredDateCalculatorTest() { _calculator = new RedemptionExpiredDateCalculator(); } [Fact] public void Calculate_NoRepoLetters_NoDates_ReturnsNull() { // act var result = _calculator.CalculateAsync( new TemenosCase(), new List()); // assert Assert.Null(result); } [Fact] public void Calculate_Null_ReturnsNull() { // act var result = _calculator.CalculateAsync( new TemenosCase(), null); // assert Assert.Null(result); } [Fact] public void Calculate_OK_WI() { TemenosAccount temenosAccount = new TemenosAccount { }; TemenosCase temenosCase = new TemenosCase { RedemptionExpiredDateWi = DateTime.Parse("11/5/2018 12:00:00 AM") }; // act var result = _calculator.CalculateAsync( temenosCase, new List() { new RepoLetter() { ActionCode = "LTR34" } }); //assert Assert.NotNull(result); Assert.Equal(result, DateTime.Parse("11/5/2018 12:00:00 AM")); } [Fact] public void Calculate_OK_IL() { TemenosAccount temenosAccount = new TemenosAccount { }; TemenosCase temenosCase = new TemenosCase { RedemptionExpiredDateIl = DateTime.Parse("11/5/2018 12:00:00 AM") }; // act var result = _calculator.CalculateAsync( temenosCase, new List() { new RepoLetter() { ActionCode = "LTR34" } }); //assert Assert.NotNull(result); Assert.Equal(result, DateTime.Parse("11/5/2018 12:00:00 AM")); } [Fact] public void Calculate_OK_BOTH_USE_WI() { TemenosAccount temenosAccount = new TemenosAccount { }; TemenosCase temenosCase = new TemenosCase { RedemptionExpiredDateWi = DateTime.Parse("11/6/2018 12:00:00 AM"), RedemptionExpiredDateIl = DateTime.Parse("11/5/2018 12:00:00 AM") }; // act var result = _calculator.CalculateAsync( temenosCase, new List() { new RepoLetter() { ActionCode = "LTR34" } }); //assert Assert.NotNull(result); Assert.Equal(result, DateTime.Parse("11/6/2018 12:00:00 AM")); } } }