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); }