Exemple #1
0
        public async Task CanUseCustomGrainActivatorToReleaseGrains()
        {
            ISimpleDIGrain grain1 = this.fixture.GrainFactory.GetGrain <ISimpleDIGrain>(GetRandomGrainId(), grainClassNamePrefix: "UnitTests.Grains.ExplicitlyRegistered");
            long           initialReleasedInstances = await grain1.GetLongValue();

            ISimpleDIGrain grain2 = this.fixture.GrainFactory.GetGrain <ISimpleDIGrain>(GetRandomGrainId(), grainClassNamePrefix: "UnitTests.Grains.ExplicitlyRegistered");
            long           secondReleasedInstances = await grain2.GetLongValue();

            Assert.Equal(initialReleasedInstances, secondReleasedInstances);

            await grain1.DoDeactivate();

            await Task.Delay(250);

            ISimpleDIGrain grain3 = this.fixture.GrainFactory.GetGrain <ISimpleDIGrain>(GetRandomGrainId(), grainClassNamePrefix: "UnitTests.Grains.ExplicitlyRegistered");
            long           finalReleasedInstances = await grain3.GetLongValue();

            Assert.Equal(initialReleasedInstances + 1, finalReleasedInstances);
        }
Exemple #2
0
        public async Task CannotGetExplictlyRegisteredGrain()
        {
            ISimpleDIGrain grain     = this.fixture.GrainFactory.GetGrain <ISimpleDIGrain>(GetRandomGrainId(), grainClassNamePrefix: "UnitTests.Grains.ExplicitlyRegistered");
            var            exception = await Assert.ThrowsAsync <OrleansException>(() => grain.GetLongValue());

            Assert.Contains("Error creating activation for", exception.Message);
            Assert.Contains("explicitly-registered", exception.Message);
        }
        public async Task CannotGetExplictlyRegisteredGrain()
        {
            ISimpleDIGrain grain     = this.fixture.GrainFactory.GetGrain <ISimpleDIGrain>(GetRandomGrainId(), grainClassNamePrefix: "UnitTests.Grains.ExplicitlyRegistered");
            var            exception = await Assert.ThrowsAsync <InvalidOperationException>(() => grain.GetLongValue());

            Assert.Contains("Unable to resolve service for type 'System.String' while attempting to activate 'UnitTests.Grains.ExplicitlyRegisteredSimpleDIGrain'", exception.Message);
        }