Skip to content

Commit

Permalink
chore: adjust query to select processes
Browse files Browse the repository at this point in the history
Refs: #1175
  • Loading branch information
Phil91 authored and ntruchsess committed Feb 7, 2025
1 parent 0078ff7 commit 2c1579d
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -128,13 +128,8 @@ private async Task HandleOfferSetupProcesses(Guid companyId, ICompanyRepository
.ToListAsync()
.ConfigureAwait(false);

foreach (var context in processData
.Where(x => x.Process != null && x.ProcessSteps?.Any(ps => ps is
{
ProcessStepStatusId: ProcessStepStatusId.TODO,
ProcessStepTypeId: ProcessStepTypeId.RETRIGGER_PROVIDER
}) == true)
.Select(data => data.CreateManualProcessData(ProcessStepTypeId.RETRIGGER_PROVIDER, portalRepositories, () => $"processId {data.Process!.Id}")))
foreach (var context in processData.Select(data =>
data.CreateManualProcessData(ProcessStepTypeId.RETRIGGER_PROVIDER, portalRepositories, () => $"processId {data.Process!.Id}")))
{
context.FinalizeProcessStep();
context.ScheduleProcessSteps(Enumerable.Repeat(ProcessStepTypeId.AWAIT_START_AUTOSETUP, 1));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -487,8 +487,13 @@ public IAsyncEnumerable<VerifyProcessData<ProcessTypeId, ProcessStepTypeId>> Get
context.Companies
.Where(c => c.Id == companyId)
.SelectMany(c => c.ProvidedOffers.SelectMany(po =>
po.OfferSubscriptions.Select(os =>
new VerifyProcessData<ProcessTypeId, ProcessStepTypeId>(
po.OfferSubscriptions.Where(x =>
x.Process != null &&
x.Process!.ProcessSteps.Any(ps =>
ps.ProcessStepStatusId == ProcessStepStatusId.TODO &&
ps.ProcessStepTypeId == ProcessStepTypeId.RETRIGGER_PROVIDER
))
.Select(os => new VerifyProcessData<ProcessTypeId, ProcessStepTypeId>(
os.Process,
os.Process!.ProcessSteps.Where(ps => ps.ProcessStepStatusId == ProcessStepStatusId.TODO)))))
.ToAsyncEnumerable();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,22 +236,17 @@ public async Task SetProviderCompanyDetailsAsync_WithProviderDetailsAndNoUrl_Rem
// Arrange
SetupProviderCompanyDetails();
var providerCompanyId = Guid.NewGuid();
var process1Id = Guid.NewGuid();
var process2Id = Guid.NewGuid();
var processStep1Id = Guid.NewGuid();
var processStep2Id = Guid.NewGuid();
var processId = Guid.NewGuid();
var processStepId = Guid.NewGuid();
var providerDetailData = new ProviderDetailData(null, null);
A.CallTo(() => _companyRepository.GetProviderCompanyDetailsExistsForUser(ExistingCompanyId))
.Returns((providerCompanyId, null!, null));
A.CallTo(() => _companyRepository.GetOfferSubscriptionProcessesForCompanyId(providerCompanyId))
.Returns(new List<VerifyProcessData<ProcessTypeId, ProcessStepTypeId>>
{
new(
new Process(process1Id, ProcessTypeId.OFFER_SUBSCRIPTION, Guid.NewGuid()),
Enumerable.Repeat(new ProcessStep<Process, ProcessTypeId, ProcessStepTypeId>(processStep1Id, ProcessStepTypeId.RETRIGGER_PROVIDER, ProcessStepStatusId.TODO, process1Id, DateTimeOffset.UtcNow), 1)),
new(
new Process(process2Id, ProcessTypeId.OFFER_SUBSCRIPTION, Guid.NewGuid()),
Enumerable.Repeat(new ProcessStep<Process, ProcessTypeId, ProcessStepTypeId>(processStep2Id, ProcessStepTypeId.AWAIT_START_AUTOSETUP, ProcessStepStatusId.TODO, process2Id, DateTimeOffset.UtcNow), 1))
new Process(processId, ProcessTypeId.OFFER_SUBSCRIPTION, Guid.NewGuid()),
Enumerable.Repeat(new ProcessStep<Process, ProcessTypeId, ProcessStepTypeId>(processStepId, ProcessStepTypeId.RETRIGGER_PROVIDER, ProcessStepStatusId.TODO, processId, DateTimeOffset.UtcNow), 1))
}.ToAsyncEnumerable());

// Act
Expand All @@ -270,22 +265,17 @@ public async Task SetProviderCompanyDetailsAsync_WithCallbackUrlChanged_HandlesP
{
// Arrange
SetupProviderCompanyDetails();
var process1Id = Guid.NewGuid();
var process2Id = Guid.NewGuid();
var processStep1Id = Guid.NewGuid();
var processStep2Id = Guid.NewGuid();
var processId = Guid.NewGuid();
var processStepId = Guid.NewGuid();
var providerDetailData = new ProviderDetailData(null, null);
A.CallTo(() => _companyRepository.GetProviderCompanyDetailsExistsForUser(ExistingCompanyId))
.Returns((ExistingCompanyId, "https://example.org", "https://example.org/callback"));
A.CallTo(() => _companyRepository.GetOfferSubscriptionProcessesForCompanyId(ExistingCompanyId))
.Returns(new List<VerifyProcessData<ProcessTypeId, ProcessStepTypeId>>
{
new(
new Process(process1Id, ProcessTypeId.OFFER_SUBSCRIPTION, Guid.NewGuid()),
Enumerable.Repeat(new ProcessStep<Process, ProcessTypeId, ProcessStepTypeId>(processStep1Id, ProcessStepTypeId.RETRIGGER_PROVIDER, ProcessStepStatusId.TODO, process1Id, DateTimeOffset.UtcNow), 1)),
new(
new Process(process2Id, ProcessTypeId.OFFER_SUBSCRIPTION, Guid.NewGuid()),
Enumerable.Repeat(new ProcessStep<Process, ProcessTypeId, ProcessStepTypeId>(processStep2Id, ProcessStepTypeId.AWAIT_START_AUTOSETUP, ProcessStepStatusId.TODO, process2Id, DateTimeOffset.UtcNow), 1))
new Process(processId, ProcessTypeId.OFFER_SUBSCRIPTION, Guid.NewGuid()),
Enumerable.Repeat(new ProcessStep<Process, ProcessTypeId, ProcessStepTypeId>(processStepId, ProcessStepTypeId.RETRIGGER_PROVIDER, ProcessStepStatusId.TODO, processId, DateTimeOffset.UtcNow), 1)),
}.ToAsyncEnumerable());

// Act
Expand All @@ -296,7 +286,7 @@ public async Task SetProviderCompanyDetailsAsync_WithCallbackUrlChanged_HandlesP
A.CallTo(() => _companyRepository.CreateProviderCompanyDetail(A<Guid>._, A<string>._, A<Action<ProviderCompanyDetail>>._)).MustNotHaveHappened();
A.CallTo(() => _companyRepository.AttachAndModifyProviderCompanyDetails(A<Guid>._, A<Action<ProviderCompanyDetail>>._, A<Action<ProviderCompanyDetail>>._)).MustNotHaveHappened();
A.CallTo(() => _processStepRepository.AttachAndModifyProcessSteps(A<IEnumerable<(Guid ProcessStepId, Action<IProcessStep<ProcessStepTypeId>>? Initialize, Action<IProcessStep<ProcessStepTypeId>> Modify)>>._)).MustHaveHappenedOnceExactly();
A.CallTo(() => _processStepRepository.AttachAndModifyProcessSteps(A<IEnumerable<(Guid ProcessStepId, Action<IProcessStep<ProcessStepTypeId>>? Initialize, Action<IProcessStep<ProcessStepTypeId>> Modify)>>.That.Matches(x => x.Count() == 1 && x.Single().ProcessStepId == processStep1Id))).MustHaveHappenedOnceExactly();
A.CallTo(() => _processStepRepository.AttachAndModifyProcessSteps(A<IEnumerable<(Guid ProcessStepId, Action<IProcessStep<ProcessStepTypeId>>? Initialize, Action<IProcessStep<ProcessStepTypeId>> Modify)>>.That.Matches(x => x.Count() == 1 && x.Single().ProcessStepId == processStepId))).MustHaveHappenedOnceExactly();
A.CallTo(() => _processStepRepository.CreateProcessStepRange(A<IEnumerable<(ProcessStepTypeId ProcessStepTypeId, ProcessStepStatusId ProcessStepStatusId, Guid ProcessId)>>._)).MustHaveHappenedOnceExactly();
A.CallTo(() => _processStepRepository.CreateProcessStepRange(A<IEnumerable<(ProcessStepTypeId ProcessStepTypeId, ProcessStepStatusId ProcessStepStatusId, Guid ProcessId)>>.That.Matches(x => x.Count() == 1 && x.Single().ProcessStepTypeId == ProcessStepTypeId.AWAIT_START_AUTOSETUP))).MustHaveHappenedOnceExactly();
A.CallTo(() => _portalRepositories.SaveAsync()).MustHaveHappenedOnceExactly();
Expand Down

0 comments on commit 2c1579d

Please sign in to comment.