public async Task Test_Indexing_NoIndex()
        {
            IPlayer1GrainNonFaultTolerant p100 = base.GetGrain <IPlayer1GrainNonFaultTolerant>(100);
            IPlayer1GrainNonFaultTolerant p200 = base.GetGrain <IPlayer1GrainNonFaultTolerant>(200);
            IPlayer1GrainNonFaultTolerant p300 = base.GetGrain <IPlayer1GrainNonFaultTolerant>(300);

            await p100.SetLocation(ITC.Tehran);

            await p200.SetLocation(ITC.Tehran);

            await p300.SetLocation(ITC.Yazd);

            Assert.Equal(ITC.Tehran, await p100.GetLocation());
            Assert.Equal(ITC.Tehran, await p200.GetLocation());
            Assert.Equal(ITC.Yazd, await p300.GetLocation());
        }
        public async Task Test_Indexing_NoIndex()
        {
            IPlayer1GrainNonFaultTolerant p100 = GrainClient.GrainFactory.GetGrain <IPlayer1GrainNonFaultTolerant>(100);
            IPlayer1GrainNonFaultTolerant p200 = GrainClient.GrainFactory.GetGrain <IPlayer1GrainNonFaultTolerant>(200);
            IPlayer1GrainNonFaultTolerant p300 = GrainClient.GrainFactory.GetGrain <IPlayer1GrainNonFaultTolerant>(300);

            await p100.SetLocation("Tehran");

            await p200.SetLocation("Tehran");

            await p300.SetLocation("Yazd");

            Assert.Equal("Tehran", await p100.GetLocation());
            Assert.Equal("Tehran", await p200.GetLocation());
            Assert.Equal("Yazd", await p300.GetLocation());
        }
Example #3
0
        public async Task Test_Indexing_IndexLookup1()
        {
            //await GrainClient.GrainFactory.DropAllIndexes<IPlayerGrain>();

            IPlayer1GrainNonFaultTolerant p1 = GrainClient.GrainFactory.GetGrain <IPlayer1GrainNonFaultTolerant>(1);
            await p1.SetLocation("Seattle");

            //bool isLocIndexCreated = await GrainClient.GrainFactory.CreateAndRegisterIndex<HashIndexSingleBucketInterface<string, IPlayerGrain>, PlayerLocIndexGen>("__GetLocation");
            //Assert.IsTrue(isLocIndexCreated);

            IPlayer1GrainNonFaultTolerant p2 = GrainClient.GrainFactory.GetGrain <IPlayer1GrainNonFaultTolerant>(2);
            IPlayer1GrainNonFaultTolerant p3 = GrainClient.GrainFactory.GetGrain <IPlayer1GrainNonFaultTolerant>(3);

            await p2.SetLocation("Seattle");

            await p3.SetLocation("San Fransisco");

            IndexInterface <string, IPlayer1GrainNonFaultTolerant> locIdx = GrainClient.GrainFactory.GetIndex <string, IPlayer1GrainNonFaultTolerant>("__Location");

            while (!await locIdx.IsAvailable())
            {
                Thread.Sleep(50);
            }

            Assert.Equal(2, await IndexingTestUtils.CountPlayersStreamingIn <IPlayer1GrainNonFaultTolerant, Player1PropertiesNonFaultTolerant>("Seattle", output));

            await p2.Deactivate();

            Thread.Sleep(1000);

            Assert.Equal(1, await IndexingTestUtils.CountPlayersStreamingIn <IPlayer1GrainNonFaultTolerant, Player1PropertiesNonFaultTolerant>("Seattle", output));

            p2 = GrainClient.GrainFactory.GetGrain <IPlayer1GrainNonFaultTolerant>(2);
            Assert.Equal("Seattle", await p2.GetLocation());

            Assert.Equal(2, await IndexingTestUtils.CountPlayersStreamingIn <IPlayer1GrainNonFaultTolerant, Player1PropertiesNonFaultTolerant>("Seattle", output));
        }