forked from ServiceStack/ServiceStack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMessageSerializationTests.cs
More file actions
94 lines (77 loc) · 3.16 KB
/
MessageSerializationTests.cs
File metadata and controls
94 lines (77 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
using System;
using NUnit.Framework;
using ServiceStack.DesignPatterns.Model;
using ServiceStack.Messaging.Tests.Services;
using ServiceStack.Text;
namespace ServiceStack.Messaging.Tests
{
[TestFixture]
public class MessageSerializationTests
{
[Test]
public void Can_Serialize_and_basic_Message()
{
var message = new Message<Greet>(new Greet { Name = "Test" });
Serialize(message);
}
[Test]
public void Serializing_basic_IMessage_returns_null()
{
var message = new Message<Greet>(new Greet { Name = "Test" });
var messageString = TypeSerializer.SerializeToString(message);
Assert.That(messageString, Is.Not.Null);
var result = TypeSerializer.DeserializeFromString<IMessage<Greet>>(messageString);
Assert.That(result, Is.Null);
}
[Test]
public void Can_Serialize_IMessage_and_Deserialize_into_Message()
{
var message = new Message<Greet>(new Greet { Name = "Test" });
var messageString = TypeSerializer.SerializeToString((IMessage<Greet>)message);
Assert.That(messageString, Is.Not.Null);
var fromMessageString = TypeSerializer.DeserializeFromString<Message<Greet>>(
messageString);
Assert.That(fromMessageString, Is.Not.Null);
Assert.That(fromMessageString.Id, Is.EqualTo(message.Id));
}
[Test]
public void Can_Serialize_and_Message_with_Error()
{
var message = new Message<Greet>(new Greet { Name = "Test" }) {
Error = new MessagingException(
"Test Error", new ArgumentNullException("Test")).ToMessageError()
};
Serialize(message);
}
private static void Serialize<T>(T message)
where T : IHasId<Guid>
{
var messageString = TypeSerializer.SerializeToString(message);
Assert.That(messageString, Is.Not.Null);
var fromMessageString = TypeSerializer.DeserializeFromString<T>(messageString);
Assert.That(fromMessageString, Is.Not.Null);
Assert.That(fromMessageString.Id, Is.EqualTo(message.Id));
}
[Test]
public void Does_serialize_to_correct_MQ_name()
{
var message = new Message<Greet>(new Greet { Name = "Test" }) {};
var message2 = new Message<Greet> { Body = new Greet { Name = "Test" }, };
const string expected = "mq:Greet.inq";
Assert.That(QueueNames<Greet>.In, Is.EqualTo(expected));
Assert.That(message.ToInQueueName(), Is.EqualTo(expected));
Assert.That(((IMessage<Greet>)message).ToInQueueName(), Is.EqualTo(expected));
Assert.That(message2.ToInQueueName(), Is.EqualTo(expected));
Assert.That(((IMessage<Greet>)message2).ToInQueueName(), Is.EqualTo(expected));
Assert.That(((IMessage<Greet>)(object)message2).ToInQueueName(), Is.EqualTo(expected));
}
[Test]
public void Cast_Tests()
{
var message = new Message<Greet>(new Greet { Name = "Test" }) { };
Assert.That(message is IMessage<Greet>, Is.True);
Assert.That(typeof(IMessage<Greet>).IsAssignableFrom(message.GetType()), Is.True);
Assert.That(message.GetType().IsAssignableFrom(typeof(IMessage<Greet>)), Is.False);
}
}
}