Santa brought a lot of presents for this release!

This is an important update with several improvements below:

  • Plugin step registration validation has been extended to support validation of plugin images: https://github.com/DynamicsValue/fake-xrm-easy/issues/33
  • Pipeline Simulation now supports plugin image registration in the PreValidation step
  • ExecutePluginWith methods are now available in the XrmRealContext class, you can use these for troubleshooting or integration testing using a real connection like you used to do in v1. Have a look at the new documentation about how to use XrmRealContext for integration testing, troubleshooting, and to replay previous plugin executions, but locally.
  • Custom Api support: The framework now supports a new type of FakeMessageExecutor, IBaseCustomApiFakeMessageExecutor, that simulates CustomApi execution using plugins (PluginType). As the CustomApi was introduced as a new type of FakeMessageExecutor, you can even use these with PipelineSimulation enabled to further register other plugin steps that will fire async or synchronously from these CustomApis. Check out our new Messages section in the docs
  • Automatic Plugin Step Registration: Another cool feature of this release is Automatic Plugin Registration: you can now easily integrate FakeXrmEasy with other 3rd party tools (like Spkl), to discover plugin steps using attributes and without having to manually register them every time. This is great because it refactors plugin registration to the one place (attributes) so that it can be used as the single source of truth going forward. Even more interesting, when you combine automatic registration with FakeXrmEasy’s plugin step registration validation capabilities, you’ll notice if an attempted registration via attributes was valid or not when the unit test runs, before deployment! Additionaly, if you combine it with the new plugin auditing functionality you’ll be able to test if a registration is in place and was not missed, without having to test the side effects of that plugin execution again.
  • XrmFakedPluginExecutionContext has been moved to the Plugins package and it’s under a different namespace, it’ll now be under FakeXrmEasy.Plugins as opposed to FakeXrmEasy.Abstractions.Plugins.

If this wasn’t enough, version 3.3.0 allows doing all of the above but also from client applications (like Azure functions, Blazor, etc):

Check the 3.3.0 Release Notes

You can find more fine-grained release notes in each NuGet package’s Release Notes, or in each repository’s CHANGELOG.md.