Skip to content
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
namespace DigitalLearningSolutions.Data.Tests.DataServices
{
using System;
using System.Linq;
using System.Transactions;
using DigitalLearningSolutions.Data.DataServices;
using DigitalLearningSolutions.Data.Models.LearningResources;
using DigitalLearningSolutions.Data.Tests.TestHelpers;
using FluentAssertions;
using FluentAssertions.Execution;
Expand Down Expand Up @@ -57,27 +59,14 @@ public void InsertLearningLogItem_inserts_expected_record()
using (new AssertionScope())
{
result.Should().NotBeNull();
result!.LoggedById.Should().Be(delegateId);
result.LoggedDate.Should().Be(addedDate);
result.LinkedCompetencyLearningResourceId.Should().Be(competencyLearningResourceId);
result.ExternalUri.Should().Be(resourceLink);
result.Activity.Should().Be(resourceName);
result.ActivityType.Should().Be("Learning Hub Resource");
result.LearningLogItemId.Should().NotBe(0);
result.IcsGuid.Should().NotBeNull();

result.DueDate.Should().BeNull();
result.CompletedDate.Should().BeNull();
result.DurationMins.Should().Be(0);
result.Outcomes.Should().BeNull();
result.LinkedCustomisationId.Should().BeNull();
result.VerifiedById.Should().BeNull();
result.VerifierComments.Should().BeNull();
result.ArchivedDate.Should().BeNull();
result.ArchivedById.Should().BeNull();
result.LoggedByAdminId.Should().BeNull();
result.SeqInt.Should().BeNull();
result.LastAccessedDate.Should().BeNull();
AssertLearningLogItemHasCorrectValuesForLearningHubResource(
result!,
delegateId,
addedDate,
competencyLearningResourceId,
resourceName,
resourceLink
);
}
}
finally
Expand Down Expand Up @@ -143,5 +132,139 @@ public void InsertLearningLogItemCompetencies_inserts_expected_record()
transaction.Dispose();
}
}

[Test]
public void GetLearningLogItems_returns_all_learning_hub_resource_log_items_for_delegate()
{
// Given
const int competencyLearningResourceId = 1;
const int delegateId = 2;
const int differentDelegateId = 3;
const string firstActivityName = "activity 1";
const string secondActivityName = "activity 2";
const string firstResourceLink = "link 1";
const string secondResourceLink = "link 2";
var addedDate = new DateTime(2021, 11, 1);

using var transaction = new TransactionScope();
try
{
competencyLearningResourcesTestHelper.InsertCompetencyLearningResource(
1,
competencyLearningResourceId,
1,
7
);
service.InsertLearningLogItem(
delegateId,
addedDate,
firstActivityName,
firstResourceLink,
competencyLearningResourceId
);
service.InsertLearningLogItem(
delegateId,
addedDate,
secondActivityName,
secondResourceLink,
competencyLearningResourceId
);
service.InsertLearningLogItem(
differentDelegateId,
addedDate,
"activity 3",
"resource link 3",
competencyLearningResourceId
);

// When
var result = service.GetLearningLogItems(delegateId).ToList();

// Then
using (new AssertionScope())
{
result.Count.Should().Be(2);
AssertLearningLogItemHasCorrectValuesForLearningHubResource(
result[0],
delegateId,
addedDate,
competencyLearningResourceId,
firstActivityName,
firstResourceLink
);
AssertLearningLogItemHasCorrectValuesForLearningHubResource(
result[1],
delegateId,
addedDate,
competencyLearningResourceId,
secondActivityName,
secondResourceLink
);
}
}
finally
{
transaction.Dispose();
}
}

[Test]
public void UpdateLearningLogItemLastAccessedDate_should_set_date_correctly()
{
// Given
const int learningLogItemId = 2;
var testDate = new DateTime(2021, 11, 1);

using var transaction = new TransactionScope();
try
{
// When
service.UpdateLearningLogItemLastAccessedDate(learningLogItemId, testDate);
var result = learningLogItemsTestHelper.SelectLearningLogItemById(learningLogItemId);

// Then
using (new AssertionScope())
{
result.Should().NotBeNull();
result!.LastAccessedDate.Should().Be(testDate);
}
}
finally
{
transaction.Dispose();
}
}

private void AssertLearningLogItemHasCorrectValuesForLearningHubResource(
LearningLogItem item,
int delegateId,
DateTime addedDate,
int competencyLearningResourceId,
string resourceName,
string resourceLink
)
{
item.LoggedById.Should().Be(delegateId);
item.LoggedDate.Should().Be(addedDate);
item.LinkedCompetencyLearningResourceId.Should().Be(competencyLearningResourceId);
item.ExternalUri.Should().Be(resourceLink);
item.Activity.Should().Be(resourceName);
item.ActivityType.Should().Be("Learning Hub Resource");
item.LearningLogItemId.Should().NotBe(0);
item.IcsGuid.Should().NotBeNull();

item.DueDate.Should().BeNull();
item.CompletedDate.Should().BeNull();
item.DurationMins.Should().Be(0);
item.Outcomes.Should().BeNull();
item.LinkedCustomisationId.Should().BeNull();
item.VerifiedById.Should().BeNull();
item.VerifierComments.Should().BeNull();
item.ArchivedDate.Should().BeNull();
item.ArchivedById.Should().BeNull();
item.LoggedByAdminId.Should().BeNull();
item.SeqInt.Should().BeNull();
item.LastAccessedDate.Should().BeNull();
}
}
}
Loading