public async Task ChangeDefaultVersionCompatibilityStrategy() { Assert.Equal(typeof(AllVersionsCompatible), CompatibilityStrategy); await StartSiloV1(); // Only V1 exists var grainV1 = new IVersionUpgradeTestGrain[2]; grainV1[0] = Client.GetGrain <IVersionUpgradeTestGrain>(0); grainV1[1] = Client.GetGrain <IVersionUpgradeTestGrain>(1); Assert.Equal(1, await grainV1[0].GetVersion()); Assert.Equal(1, await grainV1[1].GetVersion()); // Change default to backward compatible await ManagementGrain.SetCompatibilityStrategy(BackwardCompatible.Singleton); await StartSiloV2(); var grainV2 = Client.GetGrain <IVersionUpgradeTestGrain>(2); Assert.Equal(2, await grainV2.GetVersion()); // Should provoke "upgrade" Assert.Equal(2, await grainV2.ProxyGetVersion(grainV1[0])); Assert.Equal(2, await grainV1[0].GetVersion()); // Change default to backward compatible await ManagementGrain.SetCompatibilityStrategy(null); // Should not provoke upgrade Assert.Equal(1, await grainV2.ProxyGetVersion(grainV1[1])); Assert.Equal(1, await grainV1[1].GetVersion()); }
public Task <int> ProxyGetVersion(IVersionUpgradeTestGrain other) { return(other.GetVersion()); }
public async Task <int> ProxyGetVersion(IVersionUpgradeTestGrain other) { var version = await other.GetVersion(); return(version); }