public BaseClusterFixture() { var clusterBuilder = new LocalClusterBuilder(); clusterBuilder.ConfigureCluster(clusterConfiguration => { clusterConfiguration.Globals.ClusterId = "Some-Cluster-Id"; }); Log.Logger = new LoggerConfiguration() .CreateLogger(); // Storage provider setup var storageProviders = GetType().GetCustomAttributes(typeof(MockStorageProvider), true).Select(p => (MockStorageProvider)p); foreach (var provider in storageProviders) { clusterBuilder.ConfigureCluster(c => c.Globals.RegisterStorageProvider <MockMemoryStorageProvider>(provider.ProviderName)); } // Stream provider setup var streamProviders = GetType().GetCustomAttributes(typeof(MockStreamProvider), true).Select(p => (MockStreamProvider)p); foreach (var provider in streamProviders) { clusterBuilder.ConfigureHost(s => s.AddSimpleMessageStreamProvider(provider.ProviderName)); } // Stream storage setup var streamStorageProviders = GetType().GetCustomAttributes(typeof(MockStreamStorage), true).Select(p => (MockStreamStorage)p); foreach (var storage in streamStorageProviders) { clusterBuilder.ConfigureHost(s => s.AddMemoryGrainStorage(storage.StorageName)); } OnConfigure(clusterBuilder); clusterBuilder.ConfigureHost(OnConfigure); clusterBuilder .ConfigureServices(s => { s.AddTransient <IGrainFactoryProvider>(services => new GrainFactoryProvider(_mocker.Mock.Object)); s.AddTransient(services => _logger); OnConfigureServices(s); }); Cluster = clusterBuilder .Build(); Cluster.StartAsync().Wait(); _mocker = new GrainFactoryMocker(GrainFactory); }
protected virtual void OnConfigure(LocalClusterBuilder clusterBuilder) { }