Files
monorepo/LCU.API.Operations.IncentiveAPI/LCU.API.Internal.Operations.IncentiveApi.UnitTests/Repository/DeadActivityRepositoryTest.cs
T
2026-03-17 09:53:09 -05:00

715 lines
30 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using LCU.API.Internal.Operations.IncentiveApiLib.Persistence;
using LCU.API.Internal.Operations.IncentiveApiLib.Repositories;
using LCU.Library.Internal.IncentiveApiModels.Entities;
using LCU.Library.Internal.IncentiveApiModels.Enums;
using Microsoft.EntityFrameworkCore;
using Moq;
using NUnit.Framework;
using LCU.Library.Internal.IncentiveApiModels.Common;
namespace Application.UnitTests.Repository
{
public class DeadActivityRepositoryTest
{
private ApplicationDbContext _context;
private DeadActivityRepository _repository;
[SetUp]
public void Setup()
{
var mockDateTime = new DateTimeService();
var mockCurrentUserService = Mock.Of<ICurrentUserService>();
Mock.Get(mockCurrentUserService).Setup(s => s.GetCurrentUser()).Returns(new ApplicationUser
{
Email = "[email protected]",
});
var options = new DbContextOptionsBuilder<ApplicationDbContext>()
.UseInMemoryDatabase(Guid.NewGuid().ToString())
.EnableSensitiveDataLogging()
.Options;
_context = new ApplicationDbContext(options, mockCurrentUserService, mockDateTime);
_repository = new DeadActivityRepository(_context);
}
[Test]
public async Task GetActivitiesAsync_Paginated_OK()
{
var activity1 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "1",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today,
State = ActivityState.Accepted,
Created = DateTime.Today.Subtract(TimeSpan.FromDays(7))
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity1);
var activity2 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 56,
EmployeeId = "2",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today,
State = ActivityState.Accepted,
Created = DateTime.Today.Subtract(TimeSpan.FromDays(6))
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity2);
var activity3 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "3",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today,
State = ActivityState.Rejected,
Created = DateTime.Today.Subtract(TimeSpan.FromDays(6))
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity3);
var activity4 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "4",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today,
State = ActivityState.Created,
Created = DateTime.Today.Subtract(TimeSpan.FromDays(5))
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity4);
await _context.SaveChangesAsync();
var found = await _repository.GetPagedDeadActivities(1, 3);
Assert.NotNull(found);
Assert.IsNotEmpty(found.Items);
Assert.AreEqual(3, found.Items.Count());
Assert.AreEqual(4, found.Total);
Assert.True(found.Items.Any(x => x.EmployeeId == "4"));
Assert.False(found.Items.Any(x => x.EmployeeId == "1"));
Assert.True(found.Items.Any(x => x.EmployeeId == "2"));
Assert.True(found.Items.Any(x => x.EmployeeId == "3"));
found = await _repository.GetPagedDeadActivities(2, 3);
Assert.AreEqual(1, found.Items.Count());
Assert.AreEqual(4, found.Total);
Assert.False(found.Items.Any(x => x.EmployeeId == "4"));
Assert.True(found.Items.Any(x => x.EmployeeId == "1"));
Assert.False(found.Items.Any(x => x.EmployeeId == "2"));
Assert.False(found.Items.Any(x => x.EmployeeId == "3"));
found = await _repository.GetPagedDeadActivities(100, 3);
Assert.AreEqual(4, found.Total);
Assert.IsEmpty(found.Items);
}
[Test]
public async Task GetDeadActivitiesByActivityProductAsync_OK()
{
var activity1 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "1",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-3),
State = ActivityState.Accepted,
LastUpdated = new DateTime(2021, 1, 4)
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity1);
var activity2 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 56,
EmployeeId = "2",
Type = ActivityType.Sale,
Product = Product.NewChecking,
Accepted = DateTime.Today.AddMinutes(-2),
State = ActivityState.Accepted,
LastUpdated = new DateTime(2021, 1, 3)
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity2);
var activity3 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "3",
Type = ActivityType.Sale,
Product = Product.NewChecking,
Accepted = DateTime.Today.AddMinutes(-1),
State = ActivityState.Rejected,
LastUpdated = new DateTime(2021, 1, 2)
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity3);
var activity4 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "4",
Type = ActivityType.Sale,
Product = Product.NewChecking,
Accepted = DateTime.Today,
State = ActivityState.Accepted,
LastUpdated = new DateTime(2021, 1, 1)
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity4);
await _context.SaveChangesAsync();
var filter = new DeadActivityFilter
{
Page = 1,
Limit = 2,
Product = new List<Product> { Product.CheckCard }
};
var found = await _repository.GetFilteredDeadActivities(filter);
Assert.NotNull(found);
Assert.IsNotEmpty(found.Items);
Assert.AreEqual(1, found.Items.Count());
Assert.AreEqual(1, found.Total);
Assert.True(found.Items.Any(x => x.EmployeeId == "1"));
}
[Test]
public async Task GetDeadActivitiesByActivityTypeAsync_OK()
{
var activity1 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "1",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-3),
State = ActivityState.Accepted,
LastUpdated = new DateTime(2021, 1, 4)
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity1);
var activity2 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 56,
EmployeeId = "2",
Type = ActivityType.Referral,
Product = Product.NewChecking,
Accepted = DateTime.Today.AddMinutes(-2),
State = ActivityState.Accepted,
LastUpdated = new DateTime(2021, 1, 3)
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity2);
var activity3 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "3",
Type = ActivityType.Referral,
Product = Product.NewChecking,
Accepted = DateTime.Today.AddMinutes(-1),
State = ActivityState.Rejected,
LastUpdated = new DateTime(2021, 1, 2)
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity3);
var activity4 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "4",
Type = ActivityType.Referral,
Product = Product.NewChecking,
Accepted = DateTime.Today,
State = ActivityState.Accepted,
LastUpdated = new DateTime(2021, 1, 1)
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity4);
await _context.SaveChangesAsync();
var filter = new DeadActivityFilter
{
Page = 1,
Limit = 2,
Type = new List<ActivityType> { ActivityType.Sale }
};
var found = await _repository.GetFilteredDeadActivities(filter);
Assert.NotNull(found);
Assert.IsNotEmpty(found.Items);
Assert.AreEqual(1, found.Items.Count());
Assert.AreEqual(1, found.Total);
Assert.True(found.Items.Any(x => x.EmployeeId == "1"));
}
[Test]
public async Task GetFilteredDeadActivities_OK()
{
// You can't set last updated. So you'll get these back in reverse order you saved them.
var activity1 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "1",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-5),
State = ActivityState.Accepted,
Created = DateTime.Today.Subtract(TimeSpan.FromDays(7))
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity1);
var activity2 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 56,
EmployeeId = "2",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-4),
State = ActivityState.Rejected,
Created = DateTime.Today.Subtract(TimeSpan.FromDays(6))
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity2);
var activity3 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "3",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-3),
State = ActivityState.Accepted,
Created = DateTime.Today.Subtract(TimeSpan.FromDays(6))
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity3);
var activity4 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "4",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-2),
State = ActivityState.Created,
Created = DateTime.Today.Subtract(TimeSpan.FromDays(5))
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity4);
//null state
var activity5 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 55,
EmployeeId = "5",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-1),
Created = DateTime.Today.Subtract(TimeSpan.FromDays(6))
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity5);
var activity6 = new DeadActivity(new Activity
{
Detail = new ActivityDetail(),
DepartmentId = 56,
EmployeeId = "6",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today,
State = ActivityState.Accepted,
Created = DateTime.Today.Subtract(TimeSpan.FromDays(6))
}, DeadActivityReason.MissingRequiredField, "Test");
await _repository.SaveDeadActivity(activity6);
await _context.SaveChangesAsync();
var filter = new DeadActivityFilter
{
Page = 1,
Limit = 2,
State = new List<ActivityState> { ActivityState.Accepted }
};
var found = await _repository.GetFilteredDeadActivities(filter);
Assert.NotNull(found);
Assert.IsNotEmpty(found.Items);
Assert.AreEqual(2, found.Items.Count());
Assert.AreEqual(3, found.Total);
Assert.True(found.Items.Any(x => x.EmployeeId == "3"));
Assert.False(found.Items.Any(x => x.EmployeeId == "4")); // not accepted
Assert.False(found.Items.Any(x => x.EmployeeId == "1")); // not on this page
Assert.False(found.Items.Any(x => x.EmployeeId == "5")); // not accepted
Assert.True(found.Items.Any(x => x.EmployeeId == "6"));
Assert.False(found.Items.Any(x => x.EmployeeId == "2")); // not accepted
filter.Page = 2;
found = await _repository.GetFilteredDeadActivities(filter);
Assert.AreEqual(1, found.Items.Count());
Assert.AreEqual(3, found.Total);
Assert.False(found.Items.Any(x => x.EmployeeId == "3"));
Assert.False(found.Items.Any(x => x.EmployeeId == "2"));
Assert.True(found.Items.Any(x => x.EmployeeId == "1"));
Assert.False(found.Items.Any(x => x.EmployeeId == "4"));
var filter2 = new DeadActivityFilter
{
Page = 1,
Limit = 100,
State = new List<ActivityState> { ActivityState.ManualReview }
};
found = await _repository.GetFilteredDeadActivities(filter2);
Assert.AreEqual(0, found.Total);
Assert.IsEmpty(found.Items);
filter2.Page = 20;
found = await _repository.GetFilteredDeadActivities(filter2);
Assert.AreEqual(0, found.Total);
Assert.IsEmpty(found.Items);
}
[Test]
public async Task GetFilteredDeadActivities_More()
{
// You can't set last updated. So you'll get these back in reverse order you saved them.
var activity1 = new DeadActivity(new Activity
{
DepartmentId = 55,
EmployeeId = "1",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-4),
State = ActivityState.Accepted,
Detail = new ActivityDetail
{
MemberName = "John Doe"
}
}, DeadActivityReason.Other, "Test1");
await _repository.SaveDeadActivity(activity1);
var activity2 = new DeadActivity(new Activity
{
DepartmentId = 56,
EmployeeId = "2",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-3),
State = ActivityState.Accepted,
Detail = new ActivityDetail
{
SubjectPersonNbr = "1Jane3Doe"
}
}, DeadActivityReason.Other, "Test2");
await _repository.SaveDeadActivity(activity2);
var activity3 = new DeadActivity(new Activity
{
DepartmentId = 55,
EmployeeId = "3",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-2),
State = ActivityState.Rejected,
Detail = new ActivityDetail
{
AccountNumber = "1234"
}
}, DeadActivityReason.Other, "Test3");
await _repository.SaveDeadActivity(activity3);
var activity4 = new DeadActivity(new Activity
{
DepartmentId = 55,
EmployeeId = "4",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-1),
State = ActivityState.Accepted,
Detail = new ActivityDetail
{
AccountNumber = "12DOE35"
}
}, DeadActivityReason.Other, "Test4");
await _repository.SaveDeadActivity(activity4);
//Everything in Query is null. should not match, should not error
var activity5 = new DeadActivity(new Activity
{
DepartmentId = 55,
EmployeeId = "4",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today,
State = ActivityState.Accepted,
Detail = new ActivityDetail()
}, DeadActivityReason.Other, "Test4");
await _repository.SaveDeadActivity(activity5);
await _context.SaveChangesAsync();
var filter = new DeadActivityFilter
{
Page = 1,
Limit = 2,
Query = "DoE"
};
var found = await _repository.GetFilteredDeadActivities(filter);
Assert.NotNull(found);
Assert.IsNotEmpty(found.Items);
Assert.AreEqual(2, found.Items.Count());
Assert.AreEqual(3, found.Total);
Assert.False(found.Items.Any(x => x.EmployeeId == "3"));
Assert.True(found.Items.Any(x => x.EmployeeId == "4"));
Assert.False(found.Items.Any(x => x.EmployeeId == "1")); // not on this page
Assert.True(found.Items.Any(x => x.EmployeeId == "2"));
filter.Page = 2;
found = await _repository.GetFilteredDeadActivities(filter);
Assert.AreEqual(1, found.Items.Count());
Assert.AreEqual(3, found.Total);
Assert.False(found.Items.Any(x => x.EmployeeId == "3"));
Assert.False(found.Items.Any(x => x.EmployeeId == "2"));
Assert.True(found.Items.Any(x => x.EmployeeId == "1"));
Assert.False(found.Items.Any(x => x.EmployeeId == "4"));
}
[Test]
public async Task GetActivitiesByFilter_Employee_Department()
{
var activity1 = new DeadActivity(new Activity
{
DepartmentId = 55,
EmployeeId = "1",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-4),
State = ActivityState.Accepted,
Detail = new ActivityDetail
{
MemberName = "John Doe"
}
}, DeadActivityReason.Other, "Test1");
await _repository.SaveDeadActivity(activity1);
var activity2 = new DeadActivity(new Activity
{
DepartmentId = 56,
EmployeeId = "2",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-3),
State = ActivityState.Accepted,
Detail = new ActivityDetail
{
SubjectPersonNbr = "1Jane3Doe"
}
}, DeadActivityReason.Other, "Test2");
await _repository.SaveDeadActivity(activity2);
var activity3 = new DeadActivity(new Activity
{
DepartmentId = 55,
EmployeeId = "3",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-2),
State = ActivityState.Rejected,
Detail = new ActivityDetail
{
AccountNumber = "1234"
}
}, DeadActivityReason.Other, "Test3");
await _repository.SaveDeadActivity(activity3);
var activity4 = new DeadActivity(new Activity
{
DepartmentId = 55,
EmployeeId = "4",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-1),
State = ActivityState.Accepted,
Detail = new ActivityDetail
{
AccountNumber = "12DOE35"
}
}, DeadActivityReason.Other, "Test4");
await _repository.SaveDeadActivity(activity4);
//Everything in Query is null. should not match, should not error
var activity5 = new DeadActivity(new Activity
{
EmployeeId = "4",
DepartmentId = -1,
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today,
State = ActivityState.Accepted,
Detail = new ActivityDetail()
}, DeadActivityReason.Other, "Test5");
await _repository.SaveDeadActivity(activity5);
await _context.SaveChangesAsync();
var filter = new DeadActivityFilter
{
Page = 1,
Limit = 2,
DepartmentId = 55
};
var found = await _repository.GetFilteredDeadActivities(filter);
Assert.NotNull(found);
Assert.IsNotEmpty(found.Items);
Assert.AreEqual(2, found.Items.Count());
Assert.AreEqual(3, found.Total);
Assert.True(found.Items.Any(x => x.EmployeeId == "3"));
Assert.True(found.Items.Any(x => x.EmployeeId == "4"));
Assert.False(found.Items.Any(x => x.EmployeeId == "1")); // not on this page
Assert.False(found.Items.Any(x => x.EmployeeId == "2"));
filter.EmployeeId = "4";
found = await _repository.GetFilteredDeadActivities(filter);
Assert.AreEqual(1, found.Items.Count());
Assert.AreEqual(1, found.Total);
Assert.False(found.Items.Any(x => x.EmployeeId == "3"));
Assert.False(found.Items.Any(x => x.EmployeeId == "2"));
Assert.False(found.Items.Any(x => x.EmployeeId == "1"));
Assert.True(found.Items.Any(x => x.EmployeeId == "4"));
filter.DepartmentId = 99;
found = await _repository.GetFilteredDeadActivities(filter);
Assert.AreEqual(0, found.Items.Count());
Assert.AreEqual(0, found.Total);
}
[Test]
public async Task GetActivitiesByFilter_Sort()
{
var activity1 = new DeadActivity(new Activity
{
DepartmentId = 55,
EmployeeId = "1",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-4),
State = ActivityState.Accepted,
Detail = new ActivityDetail
{
MemberName = "John Doe"
}
}, DeadActivityReason.Other, "Test1");
await _repository.SaveDeadActivity(activity1);
var activity2 = new DeadActivity(new Activity
{
DepartmentId = 56,
EmployeeId = "2",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-3),
State = ActivityState.Accepted,
Detail = new ActivityDetail
{
SubjectPersonNbr = "1Jane3Doe"
}
}, DeadActivityReason.Other, "Test2");
await _repository.SaveDeadActivity(activity2);
var activity3 = new DeadActivity(new Activity
{
DepartmentId = 55,
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-2),
State = ActivityState.Rejected,
Detail = new ActivityDetail
{
AccountNumber = "1234"
}
}, DeadActivityReason.Other, "Test3");
await _repository.SaveDeadActivity(activity3);
var activity4 = new DeadActivity(new Activity
{
DepartmentId = 55,
EmployeeId = "4",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today.AddMinutes(-1),
State = ActivityState.Accepted,
Detail = new ActivityDetail
{
AccountNumber = "12DOE35"
}
}, DeadActivityReason.Other, "Test4");
await _repository.SaveDeadActivity(activity4);
//Everything in Query is null. should not match, should not error
var activity5 = new DeadActivity(new Activity
{
DepartmentId = -1,
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today,
State = ActivityState.Accepted,
Detail = new ActivityDetail()
}, DeadActivityReason.Other, "Test5");
await _repository.SaveDeadActivity(activity5);
await _context.SaveChangesAsync();
//Everything in Query is null. should not match, should not error
var activity6 = new DeadActivity(new Activity
{
DepartmentId = -1,
EmployeeId = "6",
Type = ActivityType.Sale,
Product = Product.CheckCard,
Accepted = DateTime.Today,
State = ActivityState.Accepted,
Detail = new ActivityDetail()
}, DeadActivityReason.Other, "Test6");
await _repository.SaveDeadActivity(activity6);
var filter = new DeadActivityFilter
{
Page = 1,
Limit = 99,
DepartmentId = 55,
SortBy = "EmployeeId"
};
//NOTE: Null EmployeeId first
var found = await _repository.GetFilteredDeadActivities(filter);
var expected = new[] { "Test3", "Test1", "Test4" };
Assert.NotNull(found);
Assert.IsNotEmpty(found.Items);
Assert.AreEqual(3, found.Items.Count());
Assert.AreEqual(3, found.Total);
var ordered = found.Items.Select(x => x.ReasonNote).ToArray();
Assert.AreEqual(expected, ordered);
//NOTE: Null EmployeeId Last
filter.SortDescending = true;
found = await _repository.GetFilteredDeadActivities(filter);
expected = new[] { "Test4", "Test1", "Test3" };
Assert.NotNull(found);
Assert.IsNotEmpty(found.Items);
Assert.AreEqual(3, found.Items.Count());
Assert.AreEqual(3, found.Total);
ordered = found.Items.Select(x => x.ReasonNote).ToArray();
Assert.AreEqual(expected, ordered);
filter.SortDescending = false;
filter.SortBy = null;
found = await _repository.GetFilteredDeadActivities(filter);
expected = new[] { "Test4", "Test3", "Test1" };
Assert.NotNull(found);
Assert.IsNotEmpty(found.Items);
Assert.AreEqual(3, found.Items.Count());
Assert.AreEqual(3, found.Total);
ordered = found.Items.Select(x => x.ReasonNote).ToArray();
Assert.AreEqual(expected, ordered);
}
}
}