@@ -1845,8 +1845,8 @@ await store.CreateFunction(
1845
1845
messages . Count . ShouldBe ( 0 ) ;
1846
1846
}
1847
1847
1848
- public abstract Task EffectAndMessagesArePersistedOnSuspendFunction ( ) ;
1849
- protected async Task EffectAndMessagesArePersistedOnSuspendFunction ( Task < IFunctionStore > storeTask )
1848
+ public abstract Task EffectsAndMessagesArePersistedOnSuspendFunction ( ) ;
1849
+ protected async Task EffectsAndMessagesArePersistedOnSuspendFunction ( Task < IFunctionStore > storeTask )
1850
1850
{
1851
1851
var storedId = TestStoredId . Create ( ) ;
1852
1852
@@ -1874,7 +1874,7 @@ await store.CreateFunction(
1874
1874
var storedMessages = new List < StoredMessage >
1875
1875
{
1876
1876
new ( "Hallo" . ToUtf8Bytes ( ) , typeof ( string ) . SimpleQualifiedName ( ) . ToUtf8Bytes ( ) ) ,
1877
- new ( "Hallo " . ToUtf8Bytes ( ) , typeof ( string ) . SimpleQualifiedName ( ) . ToUtf8Bytes ( ) )
1877
+ new ( "World " . ToUtf8Bytes ( ) , typeof ( string ) . SimpleQualifiedName ( ) . ToUtf8Bytes ( ) )
1878
1878
} ;
1879
1879
1880
1880
await store . SuspendFunction (
@@ -1888,7 +1888,102 @@ await store.SuspendFunction(
1888
1888
1889
1889
var fetchedEffects = await store . EffectsStore . GetEffectResults ( storedId ) ;
1890
1890
fetchedEffects . Count . ShouldBe ( 2 ) ;
1891
+ var fetchedEffect1 = fetchedEffects . Single ( s => s . EffectId == effectId1 ) ;
1892
+ fetchedEffect1 . Result ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( "Hallo" ) ;
1893
+ var fetchedEffect2 = fetchedEffects . Single ( s => s . EffectId == effectId2 ) ;
1894
+ fetchedEffect2 . Result ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( "World" ) ;
1895
+
1896
+ var fetchedMessages = await store . MessageStore . GetMessages ( storedId , skip : 0 ) ;
1897
+ fetchedMessages . Count . ShouldBe ( 2 ) ;
1898
+ fetchedMessages [ 0 ] . MessageContent . ToStringFromUtf8Bytes ( ) . ShouldBe ( "Hallo" ) ;
1899
+ fetchedMessages [ 1 ] . MessageContent . ToStringFromUtf8Bytes ( ) . ShouldBe ( "World" ) ;
1900
+ }
1901
+
1902
+ public abstract Task MessagesOnlyArePersistedOnSuspendFunction ( ) ;
1903
+ protected async Task MessagesOnlyArePersistedOnSuspendFunction ( Task < IFunctionStore > storeTask )
1904
+ {
1905
+ var storedId = TestStoredId . Create ( ) ;
1906
+
1907
+ var store = await storeTask ;
1908
+ var paramJson = PARAM . ToJson ( ) ;
1909
+
1910
+ await store . CreateFunction (
1911
+ storedId ,
1912
+ "humanInstanceId" ,
1913
+ paramJson . ToUtf8Bytes ( ) ,
1914
+ leaseExpiration : DateTime . UtcNow . Ticks ,
1915
+ postponeUntil : null ,
1916
+ timestamp : DateTime . UtcNow . Ticks ,
1917
+ parent : null
1918
+ ) . ShouldBeTrueAsync ( ) ;
1919
+
1920
+ var storedMessages = new List < StoredMessage >
1921
+ {
1922
+ new ( "Hallo" . ToUtf8Bytes ( ) , typeof ( string ) . SimpleQualifiedName ( ) . ToUtf8Bytes ( ) ) ,
1923
+ new ( "World" . ToUtf8Bytes ( ) , typeof ( string ) . SimpleQualifiedName ( ) . ToUtf8Bytes ( ) )
1924
+ } ;
1925
+
1926
+ await store . SuspendFunction (
1927
+ storedId ,
1928
+ timestamp : DateTime . UtcNow . Ticks ,
1929
+ expectedEpoch : 0 ,
1930
+ effects : null ,
1931
+ storedMessages ,
1932
+ complimentaryState : new ComplimentaryState ( ( ) => null , LeaseLength : 0 )
1933
+ ) . ShouldBeTrueAsync ( ) ;
1934
+
1935
+ var fetchedEffects = await store . EffectsStore . GetEffectResults ( storedId ) ;
1936
+ fetchedEffects . Count . ShouldBe ( 0 ) ;
1937
+
1891
1938
var fetchedMessages = await store . MessageStore . GetMessages ( storedId , skip : 0 ) ;
1892
1939
fetchedMessages . Count . ShouldBe ( 2 ) ;
1940
+ fetchedMessages [ 0 ] . MessageContent . ToStringFromUtf8Bytes ( ) . ShouldBe ( "Hallo" ) ;
1941
+ fetchedMessages [ 1 ] . MessageContent . ToStringFromUtf8Bytes ( ) . ShouldBe ( "World" ) ;
1942
+ }
1943
+
1944
+ public abstract Task EffectsOnlyArePersistedOnSuspendFunction ( ) ;
1945
+ protected async Task EffectsOnlyArePersistedOnSuspendFunction ( Task < IFunctionStore > storeTask )
1946
+ {
1947
+ var storedId = TestStoredId . Create ( ) ;
1948
+
1949
+ var store = await storeTask ;
1950
+ var paramJson = PARAM . ToJson ( ) ;
1951
+
1952
+ await store . CreateFunction (
1953
+ storedId ,
1954
+ "humanInstanceId" ,
1955
+ paramJson . ToUtf8Bytes ( ) ,
1956
+ leaseExpiration : DateTime . UtcNow . Ticks ,
1957
+ postponeUntil : null ,
1958
+ timestamp : DateTime . UtcNow . Ticks ,
1959
+ parent : null
1960
+ ) . ShouldBeTrueAsync ( ) ;
1961
+
1962
+ var effectId1 = new EffectId ( "EffectId#1" , EffectType . Effect , Context : "" ) ;
1963
+ var effectId2 = new EffectId ( "EffectId#2" , EffectType . Effect , Context : "" ) ;
1964
+ var storedEffects = new List < StoredEffectChange >
1965
+ {
1966
+ new ( storedId , effectId1 . ToStoredEffectId ( ) , CrudOperation . Insert , new StoredEffect ( effectId1 , effectId1 . ToStoredEffectId ( ) , WorkStatus . Completed , Result : "Hallo" . ToUtf8Bytes ( ) , StoredException : null ) ) ,
1967
+ new ( storedId , effectId2 . ToStoredEffectId ( ) , CrudOperation . Insert , new StoredEffect ( effectId2 , effectId2 . ToStoredEffectId ( ) , WorkStatus . Completed , Result : "World" . ToUtf8Bytes ( ) , StoredException : null ) ) ,
1968
+ } ;
1969
+
1970
+ await store . SuspendFunction (
1971
+ storedId ,
1972
+ timestamp : DateTime . UtcNow . Ticks ,
1973
+ expectedEpoch : 0 ,
1974
+ storedEffects ,
1975
+ messages : null ,
1976
+ complimentaryState : new ComplimentaryState ( ( ) => null , LeaseLength : 0 )
1977
+ ) . ShouldBeTrueAsync ( ) ;
1978
+
1979
+ var fetchedEffects = await store . EffectsStore . GetEffectResults ( storedId ) ;
1980
+ fetchedEffects . Count . ShouldBe ( 2 ) ;
1981
+ var fetchedEffect1 = fetchedEffects . Single ( s => s . EffectId == effectId1 ) ;
1982
+ fetchedEffect1 . Result ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( "Hallo" ) ;
1983
+ var fetchedEffect2 = fetchedEffects . Single ( s => s . EffectId == effectId2 ) ;
1984
+ fetchedEffect2 . Result ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( "World" ) ;
1985
+
1986
+ var fetchedMessages = await store . MessageStore . GetMessages ( storedId , skip : 0 ) ;
1987
+ fetchedMessages . Count . ShouldBe ( 0 ) ;
1893
1988
}
1894
1989
}
0 commit comments