public void GetMessageProviderTypesFromAssembliesShouldFindThreeMessageProvidersFromTheSamplePlugin()
        {
            var ruleTypes     = MessageAssemblyScanner.GetMessageProviderTypesFromAssemblies(new[] { SamplePluginAssembly.GetAssembly() });
            var ruleTypeNames = ruleTypes.Select(x => x.Name).ToList();

            Assert.That(ruleTypeNames,
                        Does.Contain("SampleProvider").And.Contain("SecondSampleProvider").And.Contain("ThirdSampleProvider"),
                        "Message providers found contains all of the expected ones");
        }
        /// <inheritdoc/>
        public IRegistersMessageProviders AddMessageProvidersInAssemblies(IEnumerable <Assembly> assemblies)
        {
            if (assemblies is null)
            {
                throw new ArgumentNullException(nameof(assemblies));
            }

            foreach (var providerType in MessageAssemblyScanner.GetMessageProviderTypesFromAssemblies(assemblies))
            {
                AddMessageProvider(providerType);
            }

            return(this);
        }