Skip to content

Commit 6b49bed

Browse files
authored
Re-enabled the test with a fix to use a fixed 30 days for @monthly in actor deserialization for now (#1530)
Signed-off-by: Whit Waldo <[email protected]>
1 parent faeeb8e commit 6b49bed

File tree

3 files changed

+16
-17
lines changed

3 files changed

+16
-17
lines changed

src/Dapr.Actors/Extensions/DurationExtensions.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,12 @@ public static TimeSpan FromPrefixedPeriod(this string period)
6868

6969
if (period.StartsWith(MonthlyPrefixPeriod))
7070
{
71-
var dateTime = DateTime.UtcNow;
72-
return dateTime.AddMonths(1) - dateTime;
71+
return TimeSpan.FromDays(30);
7372
}
7473

7574
if (period.StartsWith(MidnightPrefixPeriod))
7675
{
77-
return new TimeSpan();
76+
return TimeSpan.Zero;
7877
}
7978

8079
if (period.StartsWith(WeeklyPrefixPeriod))

src/Dapr.Actors/Runtime/ConverterUtils.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public static TimeSpan ConvertTimeSpanFromDaprFormat(string valueString)
4949
int msIndex = spanOfValue.IndexOf("ms");
5050

5151
// handle days from hours.
52-
var hoursSpan = spanOfValue.Slice(0, hIndex);
52+
var hoursSpan = spanOfValue[..hIndex];
5353
var hours = int.Parse(hoursSpan);
5454
var days = hours / 24;
5555
hours %= 24;

test/Dapr.Actors.Test/Runtime/ActorManagerTests.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -219,19 +219,19 @@ public async Task DeserializeTimer_Period_DaprFormat_Every2()
219219
Assert.Equal(TimeSpan.FromHours(3).Add(TimeSpan.FromMinutes(2)).Add(TimeSpan.FromSeconds(15)), result.Period);
220220
}
221221

222-
// [Fact]
223-
// public async Task DeserializeTimer_Period_DaprFormat_Monthly()
224-
// {
225-
// const string timerJson = "{\"callback\": \"TimerCallback\", \"period\": \"@monthly\"}";
226-
// await using var stream = new MemoryStream(Encoding.UTF8.GetBytes(timerJson));
227-
// var result = await ActorManager.DeserializeAsync(stream);
228-
//
229-
// Assert.Equal("TimerCallback", result.Callback);
230-
// Assert.Equal(Array.Empty<byte>(), result.Data);
231-
// Assert.Null(result.Ttl);
232-
// Assert.Equal(TimeSpan.Zero, result.DueTime);
233-
// Assert.Equal(TimeSpan.FromDays(30), result.Period);
234-
// }
222+
[Fact]
223+
public async Task DeserializeTimer_Period_DaprFormat_Monthly()
224+
{
225+
const string timerJson = "{\"callback\": \"TimerCallback\", \"period\": \"@monthly\"}";
226+
await using var stream = new MemoryStream(Encoding.UTF8.GetBytes(timerJson));
227+
var result = await ActorManager.DeserializeAsync(stream);
228+
229+
Assert.Equal("TimerCallback", result.Callback);
230+
Assert.Equal(Array.Empty<byte>(), result.Data);
231+
Assert.Null(result.Ttl);
232+
Assert.Equal(TimeSpan.Zero, result.DueTime);
233+
Assert.Equal(TimeSpan.FromDays(30), result.Period);
234+
}
235235

236236
[Fact]
237237
public async Task DeserializeTimer_Period_DaprFormat_Weekly()

0 commit comments

Comments
 (0)