コード例 #1
0
        public async Task TestClientAddressableHappyPath()
        {
            var myOb = new MyPseudoGrain();
            this.anchor = myOb;
            var myRef = await ((GrainFactory) GrainClient.GrainFactory).CreateObjectReference<IClientAddressableTestClientObject>(myOb);
            var proxy = GrainClient.GrainFactory.GetGrain<IClientAddressableTestGrain>(GetRandomGrainId());
            const string expected = "o hai!";
            await proxy.SetTarget(myRef);
            var actual = await proxy.HappyPath(expected);
            Assert.AreEqual(expected, actual);

            await GrainReference.DeleteObjectReference(myRef);
        }
コード例 #2
0
        public async Task TestClientAddressableHappyPath()
        {
            var myOb = new MyPseudoGrain();

            this.anchor = myOb;
            var          myRef    = ((GrainFactory)GrainClient.GrainFactory).CreateObjectReference <IClientAddressableTestClientObject>(myOb);
            var          proxy    = GrainClient.GrainFactory.GetGrain <IClientAddressableTestGrain>(GetRandomGrainId());
            const string expected = "o hai!";
            await proxy.SetTarget(myRef);

            var actual = await proxy.HappyPath(expected);

            Assert.Equal(expected, actual);

            RuntimeClient.Current.DeleteObjectReference(myRef);
        }
コード例 #3
0
        public async Task TestClientAddressableSadPath()
        {
            const string message = "o hai!";

            var myOb = new MyPseudoGrain();

            this.anchor = myOb;
            var myRef = await((GrainFactory)GrainClient.GrainFactory).CreateObjectReference <IClientAddressableTestClientObject>(myOb);
            var proxy = GrainClient.GrainFactory.GetGrain <IClientAddressableTestGrain>(GetRandomGrainId());
            await proxy.SetTarget(myRef);

            await Xunit.Assert.ThrowsAsync <ApplicationException>(() =>
                                                                  proxy.SadPath(message)
                                                                  );

            await GrainReference.DeleteObjectReference(myRef);
        }
コード例 #4
0
        public async Task MicroClientAddressableParallelStressTest()
        {
            const int iterationCount = 1000;

            var myOb = new MyPseudoGrain();

            this.anchor = myOb;
            var myRef = await((GrainFactory)GrainClient.GrainFactory).CreateObjectReference <IClientAddressableTestClientObject>(myOb);
            var proxy = GrainClient.GrainFactory.GetGrain <IClientAddressableTestGrain>(GetRandomGrainId());
            await proxy.SetTarget(myRef);

            await proxy.MicroParallelStressTest(iterationCount);

            await GrainReference.DeleteObjectReference(myRef);

            myOb.VerifyNumbers(iterationCount);
        }
コード例 #5
0
        public async Task TestClientAddressableSadPath()
        {
            const string message = "o hai!";
            try
            {
                var myOb = new MyPseudoGrain();
                this.anchor = myOb;
                var myRef = await ((GrainFactory) GrainClient.GrainFactory).CreateObjectReference<IClientAddressableTestClientObject>(myOb);
                var proxy = GrainClient.GrainFactory.GetGrain<IClientAddressableTestGrain>(GetRandomGrainId());
                await proxy.SetTarget(myRef);
                await proxy.SadPath(message);

                await GrainReference.DeleteObjectReference(myRef);
            }
            catch (AggregateException e)
            {
                var ef = e.Flatten();
                if (ef.InnerExceptions.Count == 1 &&
                    ef.InnerExceptions[0] is ApplicationException 
                    && ef.InnerExceptions[0].Message == message)
                {
                    throw (ApplicationException)ef.InnerExceptions[0];                    
                }
                else
                {
                    throw;                    
                }
            }
        }
コード例 #6
0
        public async Task MicroClientAddressableParallelStressTest()
        {
            const int iterationCount = 1000;

            var myOb = new MyPseudoGrain();
            this.anchor = myOb;
            var myRef = await ((GrainFactory) GrainClient.GrainFactory).CreateObjectReference<IClientAddressableTestClientObject>(myOb);
            var proxy = GrainClient.GrainFactory.GetGrain<IClientAddressableTestGrain>(GetRandomGrainId());
            await proxy.SetTarget(myRef);
            await proxy.MicroParallelStressTest(iterationCount);

            await GrainReference.DeleteObjectReference(myRef);

            myOb.VerifyNumbers(iterationCount);
        }
コード例 #7
0
        public async Task TestClientAddressableSadPath()
        {
            const string message = "o hai!";

            var myOb = new MyPseudoGrain();
            this.anchor = myOb;
            var myRef = ((GrainFactory)GrainClient.GrainFactory).CreateObjectReference<IClientAddressableTestClientObject>(myOb);
            var proxy = GrainClient.GrainFactory.GetGrain<IClientAddressableTestGrain>(GetRandomGrainId());
            await proxy.SetTarget(myRef);

            await Assert.ThrowsAsync<ApplicationException>(() =>
                proxy.SadPath(message)
            );

            RuntimeClient.Current.DeleteObjectReference(myRef);
        }