Skip to content

Commit 0efd79c

Browse files
committed
SentTime no longer required
Also added tests for missing IsSystemMessage
1 parent ee38cf0 commit 0efd79c

File tree

4 files changed

+97
-2
lines changed

4 files changed

+97
-2
lines changed

src/ServiceControl.AcceptanceTests/MessageFailures/When_a_message_has_failed_from_send_only_endpoint.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
namespace ServiceBus.Management.AcceptanceTests
22
{
33
using System;
4-
using System.Runtime.Remoting.Contexts;
54
using Contexts;
65
using NServiceBus;
76
using NServiceBus.AcceptanceTesting;
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
namespace ServiceControl.UnitTests.CompositeViews
2+
{
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Threading;
7+
using Infrastructure.RavenDB;
8+
using MessageFailures;
9+
using NUnit.Framework;
10+
using Raven.Client;
11+
using ServiceControl.MessageFailures.Api;
12+
13+
[TestFixture]
14+
public class FailedMessagesTests : TestWithRavenDB
15+
{
16+
[Test]
17+
public void Should_allow_errors_with_no_metadata()
18+
{
19+
using (var session = documentStore.OpenSession())
20+
{
21+
var processedMessage = new FailedMessage
22+
{
23+
Id = "1",
24+
UniqueMessageId = "xyz",
25+
Status = FailedMessageStatus.Unresolved,
26+
ProcessingAttempts = new List<FailedMessage.ProcessingAttempt> { new FailedMessage.ProcessingAttempt
27+
{
28+
AttemptedAt = DateTime.UtcNow,
29+
MessageMetadata = new Dictionary<string, object>()
30+
}}
31+
};
32+
33+
session.Store(processedMessage);
34+
35+
session.SaveChanges();
36+
}
37+
38+
RavenQueryStatistics stats;
39+
40+
do
41+
{
42+
using (var session = documentStore.OpenSession())
43+
{
44+
45+
46+
var results = session.Advanced.LuceneQuery<FailedMessageViewIndex.SortAndFilterOptions, FailedMessageViewIndex>()
47+
.SetResultTransformer(new FailedMessageViewTransformer().TransformerName)
48+
.Statistics(out stats)
49+
.SelectFields<FailedMessageView>()
50+
.ToList();
51+
52+
53+
if (!stats.IsStale)
54+
{
55+
Console.Out.WriteLine("Checking result");
56+
Assert.AreEqual(1, results.Count);
57+
58+
Assert.AreEqual(DateTime.MinValue,results.First().TimeSent);
59+
}
60+
}
61+
62+
63+
64+
if (stats.IsStale)
65+
Thread.Sleep(1000);
66+
67+
} while (stats.IsStale);
68+
69+
70+
}
71+
72+
73+
[SetUp]
74+
public void SetUp()
75+
{
76+
documentStore = InMemoryStoreBuilder.GetInMemoryStore();
77+
78+
var customIndex = new FailedMessageViewIndex();
79+
customIndex.Execute(documentStore);
80+
81+
var transformer = new FailedMessageViewTransformer();
82+
83+
transformer.Execute(documentStore);
84+
}
85+
86+
[TearDown]
87+
public void TearDown()
88+
{
89+
documentStore.Dispose();
90+
}
91+
92+
IDocumentStore documentStore;
93+
}
94+
}

src/ServiceControl.UnitTests/ServiceControl.UnitTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
<Reference Include="System.Xml.Linq" />
9090
</ItemGroup>
9191
<ItemGroup>
92+
<Compile Include="CompositeViews\FailedMessageTest.cs" />
9293
<Compile Include="ExternalIntegrations\MessageFailedConverterTests.cs" />
9394
<Compile Include="CompositeViews\MessagesViewTests.cs" />
9495
<Compile Include="Expiration\CustomExpirationBundleTests.cs" />

src/ServiceControl/MessageFailures/Api/FailedMessageViewTransformer.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
namespace ServiceControl.MessageFailures.Api
22
{
3+
using System;
34
using System.Linq;
45
using Raven.Client.Indexes;
56

@@ -16,7 +17,7 @@ public FailedMessageViewTransformer()
1617
IsSystemMessage = (bool)rec.MessageMetadata["IsSystemMessage"],
1718
SendingEndpoint = rec.MessageMetadata["SendingEndpoint"],
1819
ReceivingEndpoint = rec.MessageMetadata["ReceivingEndpoint"],
19-
TimeSent = rec.MessageMetadata["TimeSent"],
20+
TimeSent = (DateTime)rec.MessageMetadata["TimeSent"],
2021
MessageId = rec.MessageMetadata["MessageId"],
2122
rec.FailureDetails.Exception,
2223
NumberOfProcessingAttempts = failure.ProcessingAttempts.Count(),

0 commit comments

Comments
 (0)