Skip to content

Commit 8cc22f7

Browse files
authored
EffectId changed to ints
1 parent 0b5a4f0 commit 8cc22f7

File tree

57 files changed

+792
-658
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+792
-658
lines changed

.claude/settings.local.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
"Bash(pg_isready -h localhost -p 5432)",
1717
"Bash(git log:*)",
1818
"Bash(wait)",
19-
"WebSearch"
19+
"WebSearch",
20+
"Bash(cat:*)"
2021
],
2122
"deny": [],
2223
"ask": []
Lines changed: 22 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using Cleipnir.ResilientFunctions.Domain;
2-
using Cleipnir.ResilientFunctions.Storage;
32
using Microsoft.VisualStudio.TestTools.UnitTesting;
43
using Shouldly;
54

@@ -11,82 +10,72 @@ public class EffectIdTests
1110
[TestMethod]
1211
public void EffectIdWithStateCanBeDeserialized()
1312
{
14-
var effectId = new EffectId("SomeValue", EffectType.State, Context: "");
13+
var effectId = new EffectId([1]);
1514
var serializedId = effectId.Serialize();
1615
var deserializedId = EffectId.Deserialize(serializedId);
17-
16+
1817
deserializedId.ShouldBe(effectId);
1918
}
20-
19+
2120
[TestMethod]
2221
public void EffectIdWithContextCanBeDeserialized()
2322
{
24-
var parentEffect = new EffectId("SomeParentId", EffectType.Effect, Context: "ESomeParentContext");
25-
var effectId = new EffectId("SomeValue", EffectType.State, Context: parentEffect.Serialize().Value);
23+
var parentEffect = new EffectId([2, 1]);
24+
var effectId = new EffectId([parentEffect.Id, 3]);
2625
var serializedId = effectId.Serialize();
2726
var deserializedId = EffectId.Deserialize(serializedId);
28-
27+
2928
deserializedId.ShouldBe(effectId);
3029
}
31-
30+
3231
[TestMethod]
3332
public void EffectIdWithContextAndEscapedCharactersCanBeDeserialized()
3433
{
35-
var parentEffect = new EffectId("SomeParentId", EffectType.Effect, Context: "");
36-
var effectId = new EffectId("Some.Value\\WithBackSlash", EffectType.State, Context: parentEffect.Serialize().Value);
34+
var parentEffect = new EffectId([1]);
35+
var effectId = new EffectId([parentEffect.Id, 2]);
3736
var serializedId = effectId.Serialize();
3837
var deserializedId = EffectId.Deserialize(serializedId);
39-
38+
4039
deserializedId.ShouldBe(effectId);
4140
}
42-
41+
4342
[TestMethod]
4443
public void EffectIdWithBackslashIsSerializedCorrectly()
4544
{
46-
var effectId = new EffectId("\\", EffectType.State, Context: "");
45+
var effectId = new EffectId([1]);
4746
var serializedId = effectId.Serialize();
48-
serializedId.Value.ShouldBe("S\\\\");
47+
serializedId.Value.ShouldBe([1]);
4948
var deserializedId = EffectId.Deserialize(serializedId);
5049
deserializedId.ShouldBe(effectId);
5150
}
52-
51+
5352
[TestMethod]
5453
public void EffectIdWithDotIsSerializedCorrectly()
5554
{
56-
var effectId = new EffectId(".", EffectType.State, Context: "");
55+
var effectId = new EffectId([2]);
5756
var serializedId = effectId.Serialize();
58-
serializedId.Value.ShouldBe("S\\.");
57+
serializedId.Value.ShouldBe([2]);
5958
var deserializedId = EffectId.Deserialize(serializedId);
6059
deserializedId.ShouldBe(effectId);
6160
}
62-
61+
6362
[TestMethod]
6463
public void EffectIdWithoutStateCanBeDeserialized()
6564
{
66-
var effectId = new EffectId("SomeValue", EffectType.Effect, Context: "");
65+
var effectId = new EffectId([1]);
6766
var serializedId = effectId.Serialize();
6867
var deserializedId = EffectId.Deserialize(serializedId);
69-
68+
7069
deserializedId.ShouldBe(effectId);
7170
}
7271

73-
[TestMethod]
74-
public void StoredEffectIdIsBasedOnSerializedEffectIdValue()
75-
{
76-
var effectId = new EffectId("SomeId", EffectType.Effect, Context: new EffectId("SomeParentId", EffectType.Effect, Context: "ESomeParentContext").Serialize().Value);
77-
var serializedEffectId = effectId.Serialize();
78-
79-
var storedEffectId = effectId.ToStoredEffectId();
80-
storedEffectId.Value.ShouldBe(StoredIdFactory.FromString(serializedEffectId.Value));
81-
}
82-
8372
[TestMethod]
8473
public void EffectIdWithEmptyIdAndContextCanBeDeserialized()
8574
{
86-
var effectId = new EffectId("", EffectType.State, Context: "");
75+
var effectId = new EffectId([0]);
8776
var serializedId = effectId.Serialize();
8877
var deserializedId = EffectId.Deserialize(serializedId);
89-
78+
9079
deserializedId.ShouldBe(effectId);
9180
}
92-
}
81+
}

Core/Cleipnir.ResilientFunctions.Tests/InMemoryTests/StoreTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,4 +257,16 @@ public override Task GetResultsReturnsEmptyDictionaryForEmptyInput()
257257
[TestMethod]
258258
public override Task GetResultsReturnsOnlyExistingFunctionResults()
259259
=> GetResultsReturnsOnlyExistingFunctionResults(FunctionStoreFactory.Create());
260+
261+
[TestMethod]
262+
public override Task SetResultSucceedsWhenOwnerMatches()
263+
=> SetResultSucceedsWhenOwnerMatches(FunctionStoreFactory.Create());
264+
265+
[TestMethod]
266+
public override Task SetResultDoesNothingWhenOwnerDoesNotMatch()
267+
=> SetResultDoesNothingWhenOwnerDoesNotMatch(FunctionStoreFactory.Create());
268+
269+
[TestMethod]
270+
public override Task SetResultDoesNothingWhenFunctionDoesNotExist()
271+
=> SetResultDoesNothingWhenFunctionDoesNotExist(FunctionStoreFactory.Create());
260272
}

Core/Cleipnir.ResilientFunctions.Tests/InMemoryTests/StoredEffectSerializationTests.cs

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using Cleipnir.ResilientFunctions.Domain;
23
using Cleipnir.ResilientFunctions.Storage;
34
using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -11,7 +12,7 @@ public class StoredEffectSerializationTests
1112
[TestMethod]
1213
public void CompletedStoredEffectWithResultCanBeSerializedAndDeserialized()
1314
{
14-
var effectId = new EffectId("SomeEffect", EffectType.Effect, Context: "");
15+
var effectId = new EffectId([1]);
1516
var result = "SomeResult"u8.ToArray();
1617
var storedEffect = StoredEffect.CreateCompleted(effectId, result, alias: null);
1718

@@ -27,7 +28,7 @@ public void CompletedStoredEffectWithResultCanBeSerializedAndDeserialized()
2728
[TestMethod]
2829
public void CompletedStoredEffectWithoutResultCanBeSerializedAndDeserialized()
2930
{
30-
var effectId = new EffectId("SomeEffect", EffectType.Effect, Context: "");
31+
var effectId = new EffectId([1]);
3132
var storedEffect = StoredEffect.CreateCompleted(effectId, alias: null);
3233

3334
var serialized = storedEffect.Serialize();
@@ -42,7 +43,7 @@ public void CompletedStoredEffectWithoutResultCanBeSerializedAndDeserialized()
4243
[TestMethod]
4344
public void StartedStoredEffectCanBeSerializedAndDeserialized()
4445
{
45-
var effectId = new EffectId("SomeEffect", EffectType.Effect, Context: "");
46+
var effectId = new EffectId([1]);
4647
var storedEffect = StoredEffect.CreateStarted(effectId, alias: null);
4748

4849
var serialized = storedEffect.Serialize();
@@ -57,7 +58,7 @@ public void StartedStoredEffectCanBeSerializedAndDeserialized()
5758
[TestMethod]
5859
public void FailedStoredEffectWithExceptionCanBeSerializedAndDeserialized()
5960
{
60-
var effectId = new EffectId("SomeEffect", EffectType.Effect, Context: "");
61+
var effectId = new EffectId([1]);
6162
var storedException = new StoredException(
6263
ExceptionMessage: "Something went wrong",
6364
ExceptionStackTrace: "at SomeMethod() in SomeFile.cs:line 42",
@@ -80,82 +81,78 @@ public void FailedStoredEffectWithExceptionCanBeSerializedAndDeserialized()
8081
[TestMethod]
8182
public void StoredEffectWithStateTypeCanBeSerializedAndDeserialized()
8283
{
83-
var effectId = new EffectId("SomeState", EffectType.State, Context: "");
84+
var effectId = new EffectId([1]);
8485
var result = "{\"key\":\"value\"}"u8.ToArray();
8586
var storedEffect = StoredEffect.CreateCompleted(effectId, result, alias: null);
8687

8788
var serialized = storedEffect.Serialize();
8889
var deserialized = StoredEffect.Deserialize(serialized);
8990

9091
deserialized.EffectId.ShouldBe(effectId);
91-
deserialized.EffectId.Type.ShouldBe(EffectType.State);
9292
deserialized.WorkStatus.ShouldBe(WorkStatus.Completed);
9393
deserialized.Result.ShouldBe(result);
9494
}
9595

9696
[TestMethod]
9797
public void StoredEffectWithContextCanBeSerializedAndDeserialized()
9898
{
99-
var parentEffect = new EffectId("ParentEffect", EffectType.Effect, Context: "");
100-
var effectId = new EffectId("ChildEffect", EffectType.Effect, Context: parentEffect.Serialize().Value);
99+
var parentEffect = new EffectId([1]);
100+
var effectId = new EffectId([parentEffect.Id, 2]);
101101
var result = "SomeData"u8.ToArray();
102102
var storedEffect = StoredEffect.CreateCompleted(effectId, result, alias: null);
103103

104104
var serialized = storedEffect.Serialize();
105105
var deserialized = StoredEffect.Deserialize(serialized);
106106

107107
deserialized.EffectId.ShouldBe(effectId);
108-
deserialized.EffectId.Context.ShouldBe(parentEffect.Serialize().Value);
108+
deserialized.EffectId.Context.ShouldBe([parentEffect.Id]);
109109
deserialized.WorkStatus.ShouldBe(WorkStatus.Completed);
110110
deserialized.Result.ShouldBe(result);
111111
}
112112

113113
[TestMethod]
114114
public void StoredEffectWithTimeoutTypeCanBeSerializedAndDeserialized()
115115
{
116-
var effectId = new EffectId("SomeTimeout", EffectType.Timeout, Context: "");
116+
var effectId = new EffectId([1]);
117117
var storedEffect = StoredEffect.CreateStarted(effectId, alias: null);
118118

119119
var serialized = storedEffect.Serialize();
120120
var deserialized = StoredEffect.Deserialize(serialized);
121121

122122
deserialized.EffectId.ShouldBe(effectId);
123-
deserialized.EffectId.Type.ShouldBe(EffectType.Timeout);
124123
deserialized.WorkStatus.ShouldBe(WorkStatus.Started);
125124
}
126125

127126
[TestMethod]
128127
public void StoredEffectWithRetryTypeCanBeSerializedAndDeserialized()
129128
{
130-
var effectId = new EffectId("SomeRetry", EffectType.Retry, Context: "");
129+
var effectId = new EffectId([1]);
131130
var storedEffect = StoredEffect.CreateCompleted(effectId, alias: null);
132131

133132
var serialized = storedEffect.Serialize();
134133
var deserialized = StoredEffect.Deserialize(serialized);
135134

136135
deserialized.EffectId.ShouldBe(effectId);
137-
deserialized.EffectId.Type.ShouldBe(EffectType.Retry);
138136
deserialized.WorkStatus.ShouldBe(WorkStatus.Completed);
139137
}
140138

141139
[TestMethod]
142140
public void StoredEffectWithSystemTypeCanBeSerializedAndDeserialized()
143141
{
144-
var effectId = new EffectId("SomeSystem", EffectType.System, Context: "");
142+
var effectId = new EffectId([1]);
145143
var storedEffect = StoredEffect.CreateCompleted(effectId, alias: null);
146144

147145
var serialized = storedEffect.Serialize();
148146
var deserialized = StoredEffect.Deserialize(serialized);
149147

150148
deserialized.EffectId.ShouldBe(effectId);
151-
deserialized.EffectId.Type.ShouldBe(EffectType.System);
152149
deserialized.WorkStatus.ShouldBe(WorkStatus.Completed);
153150
}
154151

155152
[TestMethod]
156153
public void StoredEffectWithLargeResultCanBeSerializedAndDeserialized()
157154
{
158-
var effectId = new EffectId("LargeEffect", EffectType.Effect, Context: "");
155+
var effectId = new EffectId([1]);
159156
var largeResult = new byte[10000];
160157
for (int i = 0; i < largeResult.Length; i++)
161158
largeResult[i] = (byte)(i % 256);
@@ -173,37 +170,37 @@ public void StoredEffectWithLargeResultCanBeSerializedAndDeserialized()
173170
[TestMethod]
174171
public void StoredEffectWithSpecialCharactersInIdCanBeSerializedAndDeserialized()
175172
{
176-
var effectId = new EffectId("Effect.With\\Special.Characters", EffectType.Effect, Context: "");
173+
var effectId = new EffectId([12345]);
177174
var result = "Data"u8.ToArray();
178175
var storedEffect = StoredEffect.CreateCompleted(effectId, result, alias: null);
179176

180177
var serialized = storedEffect.Serialize();
181178
var deserialized = StoredEffect.Deserialize(serialized);
182179

183180
deserialized.EffectId.ShouldBe(effectId);
184-
deserialized.EffectId.Id.ShouldBe("Effect.With\\Special.Characters");
181+
deserialized.EffectId.Id.ShouldBe(12345);
185182
deserialized.WorkStatus.ShouldBe(WorkStatus.Completed);
186183
deserialized.Result.ShouldBe(result);
187184
}
188185

189186
[TestMethod]
190187
public void StoredEffectWithEmptyIdCanBeSerializedAndDeserialized()
191188
{
192-
var effectId = new EffectId("", EffectType.Effect, Context: "");
189+
var effectId = new EffectId([0]);
193190
var storedEffect = StoredEffect.CreateCompleted(effectId, alias: null);
194191

195192
var serialized = storedEffect.Serialize();
196193
var deserialized = StoredEffect.Deserialize(serialized);
197194

198195
deserialized.EffectId.ShouldBe(effectId);
199-
deserialized.EffectId.Id.ShouldBe("");
196+
deserialized.EffectId.Id.ShouldBe(0);
200197
deserialized.WorkStatus.ShouldBe(WorkStatus.Completed);
201198
}
202199

203200
[TestMethod]
204201
public void StoredEffectWithNullStackTraceCanBeSerializedAndDeserialized()
205202
{
206-
var effectId = new EffectId("FailedEffect", EffectType.Effect, Context: "");
203+
var effectId = new EffectId([1]);
207204
var storedException = new StoredException(
208205
ExceptionMessage: "Error occurred",
209206
ExceptionStackTrace: null,

0 commit comments

Comments
 (0)