Skip to content

Commit

Permalink
Refactor lots of stuff into RegisteredPluginStepsRetriever.cs Dynamic…
Browse files Browse the repository at this point in the history
  • Loading branch information
jordimontana82 committed May 2, 2024
1 parent d5e52c8 commit 344d3d8
Show file tree
Hide file tree
Showing 8 changed files with 310 additions and 287 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,25 +44,25 @@ public PipelineBenchmarks()
[Benchmark]
public void GetPluginStepsWithRetrieveMultiple()
{
_context.GetPluginStepsForOrganizationRequestWithRetrieveMultiple("Create", ProcessingStepStage.Postoperation, ProcessingStepMode.Synchronous, _createRequest);
RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(_context, "Create", ProcessingStepStage.Postoperation, ProcessingStepMode.Synchronous, _createRequest);
}

[Benchmark]
public void GetPluginStepsWithQuery()
{
_context.GetPluginStepsForOrganizationRequest("Create", ProcessingStepStage.Postoperation, ProcessingStepMode.Synchronous, _createRequest);
RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequest(_context, "Create", ProcessingStepStage.Postoperation, ProcessingStepMode.Synchronous, _createRequest);
}

[Benchmark]
public void GetPluginStepImageWithRetrieveMultiple()
{
_context.GetPluginImageDefinitionsWithRetrieveMultiple(_lastPluginStepId, ProcessingStepImageType.PostImage).ToList();
RegisteredPluginStepsRetriever.GetPluginImageDefinitionsWithRetrieveMultiple(_context, _lastPluginStepId, ProcessingStepImageType.PostImage).ToList();
}

[Benchmark]
public void GetPluginStepImageWithQuery()
{
_context.GetPluginImageDefinitionsWithQuery(_lastPluginStepId, ProcessingStepImageType.PostImage).ToList();
RegisteredPluginStepsRetriever.GetPluginImageDefinitionsWithQuery(_context, _lastPluginStepId, ProcessingStepImageType.PostImage).ToList();
}
}
}
263 changes: 5 additions & 258 deletions src/FakeXrmEasy.Plugins/IXrmFakedContextPipelineExtensions.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ private static bool CanHandleRequest(IXrmFakedContext context, OrganizationReque

private static Entity GetPreImageEntityForRequest(IXrmFakedContext context, OrganizationRequest request)
{
var target = IXrmFakedContextPipelineExtensions.GetTargetForRequest(request);
var target = RegisteredPluginStepsRetriever.GetTargetForRequest(request);
if (target == null)
{
return null;
Expand Down Expand Up @@ -279,7 +279,7 @@ private static Entity GetPreImageEntityForRequest(IXrmFakedContext context, Orga

private static Entity GetPostImageEntityForRequest(IXrmFakedContext context, OrganizationRequest request)
{
var target = IXrmFakedContextPipelineExtensions.GetTargetForRequest(request);
var target = RegisteredPluginStepsRetriever.GetTargetForRequest(request);
if (target == null)
{
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@

namespace FakeXrmEasy.Pipeline
{
/// <summary>
/// Internal helper class that contains logic to register new plugin steps
/// </summary>
internal class PluginStepRegistrationManager
{
internal static Guid RegisterPluginStepInternal<TPlugin>(IXrmFakedContext context,
Expand Down
273 changes: 273 additions & 0 deletions src/FakeXrmEasy.Plugins/Pipeline/RegisteredPluginStepsRetriever.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class GetPluginImageDefinitionsWithRetrieveMultipleTests : FakeXrmEasyTes
[Fact]
public void Should_return_empty_plugin_image_list_if_none_were_registered()
{
var pluginImages = _context.GetPluginImageDefinitions(Guid.NewGuid(), ProcessingStepImageType.Both);
var pluginImages = RegisteredPluginStepsRetriever.GetPluginImageDefinitions(_context,Guid.NewGuid(), ProcessingStepImageType.Both);
Assert.Empty(pluginImages);
}

Expand Down Expand Up @@ -49,8 +49,8 @@ public void Should_filter_image_by_relevant_pluging_step_and_not_others(Processi
Mode = ProcessingStepMode.Synchronous
});

var pluginImagesFirstPluginStep = _context.GetPluginImageDefinitions(pluginStepIdWithImages, queryType).ToList();
var pluginImagesSecondPluginStep = _context.GetPluginImageDefinitions(otherPluginStepId, queryType).ToList();
var pluginImagesFirstPluginStep = RegisteredPluginStepsRetriever.GetPluginImageDefinitions(_context, pluginStepIdWithImages, queryType).ToList();
var pluginImagesSecondPluginStep = RegisteredPluginStepsRetriever.GetPluginImageDefinitions(_context, otherPluginStepId, queryType).ToList();

Assert.Equal(shouldContainImage, pluginImagesFirstPluginStep.Count > 0);
Assert.Empty(pluginImagesSecondPluginStep);
Expand Down Expand Up @@ -92,8 +92,8 @@ public void Should_filter_image_by_relevant_pluging_step_and_not_others_with_att
Mode = ProcessingStepMode.Synchronous
});

var pluginImagesFirstPluginStep = _context.GetPluginImageDefinitions(pluginStepIdWithImages, queryType).ToList();
var pluginImagesSecondPluginStep = _context.GetPluginImageDefinitions(otherPluginStepId, queryType).ToList();
var pluginImagesFirstPluginStep = RegisteredPluginStepsRetriever.GetPluginImageDefinitions(_context, pluginStepIdWithImages, queryType).ToList();
var pluginImagesSecondPluginStep = RegisteredPluginStepsRetriever.GetPluginImageDefinitions(_context, otherPluginStepId, queryType).ToList();

Assert.Equal(shouldContainImage, pluginImagesFirstPluginStep.Count > 0);
Assert.Empty(pluginImagesSecondPluginStep);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public GetStepsForStageWithRetrieveMultipleTests()
[Fact]
public void Should_return_empty_list_of_steps_if_none_were_registered()
{
var steps = _context.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(_createRequest.RequestName, ProcessingStepStage.Preoperation, ProcessingStepMode.Synchronous, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(_context, _createRequest.RequestName, ProcessingStepStage.Preoperation, ProcessingStepMode.Synchronous, _createRequest);
Assert.Empty(steps);
}

Expand All @@ -49,7 +49,7 @@ public void Should_return_registered_plugin_step_for_exact_request_name_stage_an
Mode = mode
});

var steps = _context.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(_context, requestName, stage, mode, _createRequest);
Assert.Single(steps);

var pluginStep = steps.FirstOrDefault();
Expand Down Expand Up @@ -82,7 +82,7 @@ public void Should_return_registered_plugin_step_for_exact_request_name_stage_an
Mode = mode
});

var steps = _context.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(_context, requestName, stage, mode, _createRequest);
Assert.Single(steps);

var pluginStep = steps.FirstOrDefault();
Expand Down Expand Up @@ -114,7 +114,7 @@ public void Should_not_return_registered_plugin_step_for_another_request_name(st
Mode = mode
});

var steps = _context.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(_context, requestName, stage, mode, _createRequest);
Assert.Empty(steps);
}

Expand Down Expand Up @@ -143,7 +143,7 @@ public void Should_return_multiple_registered_plugin_steps_for_exact_request_nam
Rank = 1
});

var steps = _context.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(requestName, stage, mode, _createRequest).ToList();
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(_context, requestName, stage, mode, _createRequest).ToList();
Assert.Equal(2, steps.Count);

var firstPluginStep = steps[0];
Expand Down Expand Up @@ -184,7 +184,7 @@ public void Should_return_registered_plugin_step_for_exact_request_name_stage_an

_target.Name = "Some name";

var steps = _context.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(_context, requestName, stage, mode, _createRequest);
Assert.Single(steps);

var pluginStep = steps.FirstOrDefault();
Expand Down Expand Up @@ -220,7 +220,7 @@ public void Should_return_registered_plugin_step_for_exact_request_name_stage_an

_target.AccountCategoryCode = new OptionSetValue(0);

var steps = _context.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(_context, requestName, stage, mode, _createRequest);
Assert.Single(steps);

var pluginStep = steps.FirstOrDefault();
Expand Down Expand Up @@ -255,7 +255,7 @@ public void Should_not_return_registered_plugin_step_with_filtering_attributes_i
FilteringAttributes = new string[] { "name" }
});

var steps = _context.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequestWithRetrieveMultiple(_context, requestName, stage, mode, _createRequest);
Assert.Empty(steps);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public GetStepsForStageWithoutRetrieveMultipleTests()
[Fact]
public void Should_return_empty_list_of_steps_if_none_were_registered()
{
var steps = _context.GetPluginStepsForOrganizationRequest(_createRequest.RequestName, ProcessingStepStage.Preoperation, ProcessingStepMode.Synchronous, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequest(_context, _createRequest.RequestName, ProcessingStepStage.Preoperation, ProcessingStepMode.Synchronous, _createRequest);
Assert.Empty(steps);
}

Expand All @@ -49,7 +49,7 @@ public void Should_return_registered_plugin_step_for_exact_request_name_stage_an
Mode = mode
});

var steps = _context.GetPluginStepsForOrganizationRequest(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequest(_context, requestName, stage, mode, _createRequest);
Assert.Single(steps);

var pluginStep = steps.FirstOrDefault();
Expand Down Expand Up @@ -80,7 +80,7 @@ public void Should_return_registered_plugin_step_for_exact_request_name_stage_an
EntityTypeCode = Account.EntityTypeCode
});

var steps = _context.GetPluginStepsForOrganizationRequest(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequest(_context, requestName, stage, mode, _createRequest);
Assert.Single(steps);

var pluginStep = steps.FirstOrDefault();
Expand Down Expand Up @@ -110,7 +110,7 @@ public void Should_not_return_registered_plugin_step_for_another_request_name(st
Mode = mode
});

var steps = _context.GetPluginStepsForOrganizationRequest(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequest(_context, requestName, stage, mode, _createRequest);
Assert.Empty(steps);
}

Expand All @@ -137,7 +137,7 @@ public void Should_return_multiple_registered_plugin_steps_for_exact_request_nam
Rank = 1
});

var steps = _context.GetPluginStepsForOrganizationRequest(requestName, stage, mode, _createRequest).ToList();
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequest(_context, requestName, stage, mode, _createRequest).ToList();
Assert.Equal(2, steps.Count);

var firstPluginStep = steps[0];
Expand Down Expand Up @@ -176,7 +176,7 @@ public void Should_return_registered_plugin_step_for_exact_request_name_stage_an

_target.Name = "Some name";

var steps = _context.GetPluginStepsForOrganizationRequest(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequest(_context, requestName, stage, mode, _createRequest);
Assert.Single(steps);

var pluginStep = steps.FirstOrDefault();
Expand Down Expand Up @@ -209,7 +209,7 @@ public void Should_return_registered_plugin_step_for_exact_request_name_stage_an

_target.AccountCategoryCode = new OptionSetValue(0);

var steps = _context.GetPluginStepsForOrganizationRequest(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequest(_context, requestName, stage, mode, _createRequest);
Assert.Single(steps);

var pluginStep = steps.FirstOrDefault();
Expand Down Expand Up @@ -242,7 +242,7 @@ public void Should_not_return_registered_plugin_step_with_filtering_attributes_i
FilteringAttributes = new string[] { "name" }
});

var steps = _context.GetPluginStepsForOrganizationRequest(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequest(_context, requestName, stage, mode, _createRequest);
Assert.Empty(steps);
}

Expand Down Expand Up @@ -273,7 +273,7 @@ public void Should_not_return_registered_plugin_step_with_filtering_attributes_i

_context.RegisterPluginStep<AccountNumberPlugin>(pluginStepDefinition);

var steps = _context.GetPluginStepsForOrganizationRequest(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequest(_context, requestName, stage, mode, _createRequest);
Assert.Single(steps);

var pluginStep = steps.FirstOrDefault();
Expand Down Expand Up @@ -303,7 +303,7 @@ public void Should_not_return_registered_plugin_step_with_filtering_attributes_i

_context.RegisterPluginStep<AccountNumberPlugin>(pluginStepDefinition);

var steps = _context.GetPluginStepsForOrganizationRequest(requestName, stage, mode, _createRequest);
var steps = RegisteredPluginStepsRetriever.GetPluginStepsForOrganizationRequest(_context, requestName, stage, mode, _createRequest);
Assert.Single(steps);

var pluginStep = steps.FirstOrDefault();
Expand Down

0 comments on commit 344d3d8

Please sign in to comment.