示例#1
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     // The ActivationCount tests rely on CounterStatistic, which is a shared static value, so isolation
     // between silos is obtained using AppDomains.
     builder.CreateSiloAsync = AppDomainSiloHandle.Create;
 }
示例#2
0
 internal override void AddSiloBuilderConfigurator(TestClusterBuilder builder) => builder.AddSiloBuilderConfigurator <SiloBuilderConfiguratorWfDSMILZ>();
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     base.ConfigureTestCluster(builder);
     builder.AddSiloBuilderConfigurator <SiloConfig>();
 }
示例#4
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.Options.InitialSilosCount = 4;
     builder.AddSiloBuilderConfigurator <SiloConfigurator>();
 }
示例#5
0
 public static void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.ConfigureHostConfiguration(ConfigureHostConfiguration);
 }
示例#6
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.ConfigureHostConfiguration(TestDefaultConfiguration.ConfigureHostConfiguration);
     builder.AddSiloBuilderConfigurator <SiloInvokerTestSiloBuilderConfigurator>();
     builder.AddClientBuilderConfigurator <ClientConfigurator>();
 }
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.Options.InitialSilosCount = 2;
 }
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.ConfigureLegacyConfiguration(legacy => AdjustClusterConfiguration(legacy.ClusterConfiguration));
     builder.AddSiloBuilderConfigurator <MySiloBuilderConfigurator>();
 }
示例#9
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.Options.InitialSilosCount = 1;
     builder.ConfigureLegacyConfiguration();
 }
        public async Task Should_distribute_and_cache_domain_objects(short numSilos, int numRuns, int expectedCounts, bool shouldBreak)
        {
            var env = new GrainEnvironment();

            var cluster =
                new TestClusterBuilder(numSilos)
                .AddSiloBuilderConfigurator <Configurator>()
                .Build();

            await cluster.DeployAsync();

            try
            {
                var indexes = GetIndexes(shouldBreak, env, cluster);

                var appId = env.AppId;

                var random = new Random();

                for (var i = 0; i < numRuns; i++)
                {
                    var contributorId      = Guid.NewGuid().ToString();
                    var contributorCommand = new AssignContributor {
                        ContributorId = contributorId, AppId = appId
                    };

                    var commandContext = new CommandContext(contributorCommand, A.Fake <ICommandBus>());

                    var randomIndex = indexes[random.Next(numSilos)];

                    await randomIndex.HandleAsync(commandContext, x =>
                    {
                        if (x.Command is AssignContributor command)
                        {
                            env.HandleCommand(command);
                        }

                        x.Complete(true);

                        return(Task.CompletedTask);
                    });

                    foreach (var index in indexes)
                    {
                        var appById = await index.GetAppAsync(appId.Id, true);

                        var appByName = await index.GetAppByNameAsync(appId.Name, true);

                        if (index == randomIndex || !shouldBreak || i == 0)
                        {
                            Assert.True(appById?.Contributors.ContainsKey(contributorId));
                            Assert.True(appByName?.Contributors.ContainsKey(contributorId));
                        }
                        else
                        {
                            Assert.False(appById?.Contributors.ContainsKey(contributorId));
                            Assert.False(appByName?.Contributors.ContainsKey(contributorId));
                        }
                    }
                }

                env.VerifyGrainAccess(expectedCounts);
            }
            finally
            {
                await Task.WhenAny(Task.Delay(2000), cluster.StopAllSilosAsync());
            }
        }
        public async Task Should_retrieve_new_app(short numSilos, bool shouldBreak)
        {
            var env = new GrainEnvironment();

            var cluster =
                new TestClusterBuilder(numSilos)
                .AddSiloBuilderConfigurator <Configurator>()
                .Build();

            await cluster.DeployAsync();

            try
            {
                var indexes = GetIndexes(shouldBreak, env, cluster);

                var appId = env.AppId;

                foreach (var index in indexes)
                {
                    Assert.Null(await index.GetAppAsync(appId.Id, true));
                    Assert.Null(await index.GetAppByNameAsync(appId.Name, true));
                }

                var creatorId     = Guid.NewGuid().ToString();
                var creatorToken  = RefToken.User(creatorId);
                var createCommand = new CreateApp {
                    Actor = creatorToken, AppId = appId.Id
                };

                var commandContext = new CommandContext(createCommand, A.Fake <ICommandBus>());

                var randomIndex = indexes[new Random().Next(3)];

                await indexes[0].HandleAsync(commandContext, x =>
                {
                    if (x.Command is CreateApp command)
                    {
                        env.HandleCommand(command);
                    }

                    x.Complete(true);

                    return(Task.CompletedTask);
                });

                foreach (var index in indexes)
                {
                    var appById = await index.GetAppAsync(appId.Id, true);

                    var appByName = await index.GetAppByNameAsync(appId.Name, true);

                    if (index == randomIndex || !shouldBreak)
                    {
                        Assert.True(appById?.Contributors.ContainsKey(creatorId));
                        Assert.True(appByName?.Contributors.ContainsKey(creatorId));
                    }
                    else
                    {
                        Assert.False(appById?.Contributors.ContainsKey(creatorId));
                        Assert.False(appByName?.Contributors.ContainsKey(creatorId));
                    }
                }
            }
            finally
            {
                await Task.WhenAny(Task.Delay(2000), cluster.StopAllSilosAsync());
            }
        }
示例#12
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.Options.InitialSilosCount = 1;
     builder.AddSiloBuilderConfigurator <TestSiloBuilderConfigurator>();
     builder.AddSiloBuilderConfigurator <SiloBuilderConfiguratorConfiguringStructureMap>();
 }
示例#13
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.CreateSiloAsync = AppDomainSiloHandle.Create;
     builder.AddClientBuilderConfigurator <BuilderConfigurator>();
     builder.AddSiloBuilderConfigurator <BuilderConfigurator>();
 }
示例#14
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.Options.GatewayPerSilo    = false;
     builder.Options.InitialSilosCount = 2;
     builder.AddSiloBuilderConfigurator <HostBuilderConfigurator>();
 }
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     TestUtils.CheckForAzureStorage();
     builder.AddSiloBuilderConfigurator <MySiloBuilderConfigurator>();
 }
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     TestUtils.CheckForAzureStorage();
     builder.Options.InitialSilosCount = siloCount;
     builder.AddSiloBuilderConfigurator <SiloBuilderConfigurator>();
 }
示例#17
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.ConfigureHostConfiguration(TestDefaultConfiguration.ConfigureHostConfiguration);
     builder.AddSiloBuilderConfigurator <StartupTaskSiloConfigurator>();
 }
示例#18
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.Options.ConnectionTransport = ConnectionTransportType.TcpSocket;
     builder.Options.InitialSilosCount   = 1;
     builder.AddSiloBuilderConfigurator <SiloBuilderConfigurator>();
 }
示例#19
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     // The ActivationCount tests rely on CounterStatistic, which is a shared static value, so isolation
     // between silos is obtained using AppDomains.
     builder.CreateSiloAsync = AppDomainSiloHandle.CreateWithAssemblies(new[] { typeof(TestGrain).Assembly, typeof(SimpleGrain).Assembly });
 }
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     TestUtils.CheckForEventHub();
     builder.AddSiloBuilderConfigurator <MySiloBuilderConfigurator>();
     builder.AddClientBuilderConfigurator <MyClientBuilderConfigurator>();
 }
示例#21
0
 protected virtual void ConfigureTestCluster(TestClusterBuilder builder)
 {
 }
示例#22
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.Options.GatewayPerSilo = false;
     builder.AddSiloBuilderConfigurator <MySiloBuilderConfigurator>();
     builder.AddClientBuilderConfigurator <MyClientBuilderConfigurator>();
 }
示例#23
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.AddSiloBuilderConfigurator <SkewedClockConfigurator>();
     base.ConfigureTestCluster(builder);
 }
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
 }
示例#25
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     base.ConfigureTestClusterForIndexing(builder);
     AddSiloBuilderConfigurator(builder);
     builder.AddClientBuilderConfigurator <ClientBuilderConfiguratorWf>();
 }
示例#26
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     ConsulTestUtils.EnsureConsul();
     builder.AddSiloBuilderConfigurator <SiloBuilderConfigurator>();
     builder.AddClientBuilderConfigurator <ClientBuilderConfigurator>();
 }
示例#27
0
 internal virtual void AddSiloBuilderConfigurator(TestClusterBuilder builder) => builder.AddSiloBuilderConfigurator <SiloBuilderConfiguratorWf>();
示例#28
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.AddSiloBuilderConfigurator <ReentrancyTestsSiloBuilderConfigurator>();
     builder.AddSiloBuilderConfigurator <SiloConfigurator>();
 }
示例#29
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.AddSiloBuilderConfigurator <TestClusterConfigurator>();
     builder.AddClientBuilderConfigurator <TestClusterConfigurator>();
 }
示例#30
0
 protected override void ConfigureTestCluster(TestClusterBuilder builder)
 {
     builder.Options.InitialSilosCount = 5;
     builder.AddSiloBuilderConfigurator <Tests.DistributedTM.MemoryTransactionsFixture.SiloBuilderConfigurator>();
 }