public void AzureStore_ConvertToFromStorageFormat_GrainReference() { // NOTE: This test requires Silo to be running & Client init so that grain references can be resolved before serialization. Guid id = Guid.NewGuid(); IUser grain = GrainClient.GrainFactory.GetGrain<IUser>(id); var initialState = new GrainStateContainingGrainReferences { Grain = grain }; var entity = new AzureTableStorage.GrainStateEntity(); var storage = new AzureTableStorage(); storage.InitLogger(logger); storage.ConvertToStorageFormat(initialState, entity); Assert.IsNotNull(entity.Data, "Entity.Data"); var convertedState = new GrainStateContainingGrainReferences(); convertedState = (GrainStateContainingGrainReferences)storage.ConvertFromStorageFormat(entity); Assert.IsNotNull(convertedState, "Converted state"); Assert.AreEqual(initialState.Grain, convertedState.Grain, "Grain"); }
public void AzureStore_ConvertToFromStorageFormat_GrainReference_List() { // NOTE: This test requires Silo to be running & Client init so that grain references can be resolved before serialization. Guid[] ids = {Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()}; IUser[] grains = new IUser[3]; grains[0] = GrainClient.GrainFactory.GetGrain<IUser>(ids[0]); grains[1] = GrainClient.GrainFactory.GetGrain<IUser>(ids[1]); grains[2] = GrainClient.GrainFactory.GetGrain<IUser>(ids[2]); var initialState = new GrainStateContainingGrainReferences(); foreach (var g in grains) { initialState.GrainList.Add(g); initialState.GrainDict.Add(g.GetPrimaryKey().ToString(), g); } var entity = new AzureTableStorage.GrainStateEntity(); var storage = new AzureTableStorage(); storage.InitLogger(logger); storage.ConvertToStorageFormat(initialState, entity); Assert.IsNotNull(entity.Data, "Entity.Data"); var convertedState = (GrainStateContainingGrainReferences)storage.ConvertFromStorageFormat(entity); Assert.IsNotNull(convertedState, "Converted state"); Assert.AreEqual(initialState.GrainList.Count, convertedState.GrainList.Count, "GrainList size"); Assert.AreEqual(initialState.GrainDict.Count, convertedState.GrainDict.Count, "GrainDict size"); for (int i = 0; i < grains.Length; i++) { string iStr = ids[i].ToString(); Assert.AreEqual(initialState.GrainList[i], convertedState.GrainList[i], "GrainList #{0}", i); Assert.AreEqual(initialState.GrainDict[iStr], convertedState.GrainDict[iStr], "GrainDict #{0}", i); } Assert.AreEqual(initialState.Grain, convertedState.Grain, "Grain"); }
public void AzureTableStorage_ConvertToFromStorageFormat() { TestStoreGrainState initialState = new TestStoreGrainState { A = "1", B = 2, C = 3 }; AzureTableStorage.GrainStateEntity entity = new AzureTableStorage.GrainStateEntity(); var storage = new AzureTableStorage(); var logger = TraceLogger.GetLogger("PersistenceProviderTests"); storage.InitLogger(logger); storage.ConvertToStorageFormat(initialState, entity); Assert.IsNotNull(entity.Data, "Entity.Data"); var convertedState = (TestStoreGrainState)storage.ConvertFromStorageFormat(entity); Assert.IsNotNull(convertedState, "Converted state"); Assert.AreEqual(initialState.A, convertedState.A, "A"); Assert.AreEqual(initialState.B, convertedState.B, "B"); Assert.AreEqual(initialState.C, convertedState.C, "C"); }