Ejemplo n.º 1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldCatchupThroughHierarchy() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldCatchupThroughHierarchy()
        {
            ClusterRule = ClusterRule.withInstanceReadReplicaParam(CausalClusteringSettings.server_groups, id => _serverGroups[id]).withInstanceCoreParam(CausalClusteringSettings.server_groups, id => _serverGroups[id]);

            // given
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.neo4j.causalclustering.discovery.Cluster<?> cluster = clusterRule.startCluster();
            Cluster <object> cluster  = ClusterRule.startCluster();
            int numberOfNodesToCreate = 100;

            cluster.CoreTx((db, tx) =>
            {
                Db.schema().constraintFor(label("Foo")).assertPropertyIsUnique("foobar").create();
                tx.success();
            });

            // 0, 1, 2 are core instances
            createLabelledNodesWithProperty(cluster, numberOfNodesToCreate, label("Foo"), () => Pair.of("foobar", string.Format("baz_bat{0}", System.Guid.randomUUID())));

            // 3, 4 are other DCs
            ReadReplica east3 = cluster.AddReadReplicaWithId(3);

            east3.Start();
            ReadReplica west4 = cluster.AddReadReplicaWithId(4);

            west4.Start();

            checkDataHasReplicatedToReadReplicas(cluster, numberOfNodesToCreate);

            foreach (CoreClusterMember coreClusterMember in cluster.CoreMembers())
            {
                coreClusterMember.DisableCatchupServer();
            }

            // 5, 6 are other DCs
            ReadReplica east5 = cluster.AddReadReplicaWithId(5);

            east5.UpstreamDatabaseSelectionStrategy = "connect-randomly-within-server-group";
            east5.Start();
            ReadReplica west6 = cluster.AddReadReplicaWithId(6);

            west6.UpstreamDatabaseSelectionStrategy = "connect-randomly-within-server-group";
            west6.Start();

            checkDataHasReplicatedToReadReplicas(cluster, numberOfNodesToCreate);
        }