Skip to content

Commit 104e204

Browse files
committed
Eliminate ComandResultMessage class; re-enable tests
1 parent 1bf6bec commit 104e204

File tree

8 files changed

+144
-204
lines changed

8 files changed

+144
-204
lines changed

src/NUnitEngine/nunit.engine.core.tests/Communication/Messages/MessageTests.cs

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -28,27 +28,25 @@ public class MessageTests
2828
new TestCaseData(MessageCode.ForcedStopCommand, null)
2929
};
3030

31-
//[TestCaseSource(nameof(MessageTestData))]
32-
//public void CommandMessageConstructionTests(string commandName, string argument)
33-
//{
34-
// var cmd = new TestEngineMessage(commandName, argument);
35-
// Assert.That(cmd.Code, Is.EqualTo(commandName));
36-
// Assert.That(cmd.CommandName, Is.EqualTo(commandName));
37-
// Assert.That(cmd.Argument, Is.EqualTo(argument));
38-
//}
31+
[TestCaseSource(nameof(MessageTestData))]
32+
public void CommandMessageConstructionTests(string code, string data)
33+
{
34+
var cmd = new TestEngineMessage(code, data);
35+
Assert.That(cmd.Code, Is.EqualTo(code));
36+
Assert.That(cmd.Data, Is.EqualTo(data));
37+
}
3938

40-
//[TestCaseSource(nameof(MessageTestData))]
41-
//public void CommandMessageEncodingTests(string commandName, string argument)
42-
//{
43-
// var cmd = new TestEngineMessage(commandName, argument);
39+
[TestCaseSource(nameof(MessageTestData))]
40+
public void CommandMessageEncodingTests(string code, string data)
41+
{
42+
var cmd = new TestEngineMessage(code, data);
4443

45-
// var bytes = _wireProtocol.Encode(cmd);
46-
// var messages = new List<TestEngineMessage>(_wireProtocol.Decode(bytes));
47-
// var decoded = messages[0];
48-
// Assert.That(decoded.Code, Is.EqualTo(commandName));
49-
// Assert.That(decoded.CommandName, Is.EqualTo(commandName));
50-
// Assert.That(decoded.Argument, Is.EqualTo(argument));
51-
//}
44+
var bytes = _wireProtocol.Encode(cmd);
45+
var messages = new List<TestEngineMessage>(_wireProtocol.Decode(bytes));
46+
var decoded = messages[0];
47+
Assert.That(decoded.Code, Is.EqualTo(code));
48+
Assert.That(decoded.Data, Is.EqualTo(data));
49+
}
5250

5351
[Test]
5452
public void ProgressMessageTest()
@@ -64,18 +62,18 @@ public void ProgressMessageTest()
6462
Assert.That(decoded.Data, Is.EqualTo(REPORT));
6563
}
6664

67-
//[Test]
68-
//public void CommandReturnMessageTest()
69-
//{
70-
// const string RESULT = "Result text";
71-
// var msg = new TestEngineMessage(MessageCode.CommandResult, RESULT);
72-
// Assert.That(msg.Code, Is.EqualTo(MessageCode.CommandResult));
73-
// Assert.That(msg.Data, Is.EqualTo(RESULT));
74-
// var bytes = _wireProtocol.Encode(msg);
75-
// var messages = new List<TestEngineMessage>(_wireProtocol.Decode(bytes));
76-
// var decoded = messages[0];
77-
// Assert.That(decoded.Code, Is.EqualTo(MessageCode.CommandResult));
78-
// Assert.That(decoded.Data, Is.EqualTo(RESULT));
79-
//}
65+
[Test]
66+
public void CommandReturnMessageTest()
67+
{
68+
const string RESULT = "Result text";
69+
var msg = new TestEngineMessage(MessageCode.CommandResult, RESULT);
70+
Assert.That(msg.Code, Is.EqualTo(MessageCode.CommandResult));
71+
Assert.That(msg.Data, Is.EqualTo(RESULT));
72+
var bytes = _wireProtocol.Encode(msg);
73+
var messages = new List<TestEngineMessage>(_wireProtocol.Decode(bytes));
74+
var decoded = messages[0];
75+
Assert.That(decoded.Code, Is.EqualTo(MessageCode.CommandResult));
76+
Assert.That(decoded.Data, Is.EqualTo(RESULT));
77+
}
8078
}
8179
}

src/NUnitEngine/nunit.engine.core.tests/Communication/Protocols/BinarySerializationProtocolTests.cs

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace NUnit.Engine.Communication.Protocols
1313
{
1414
public class BinarySerializationProtocolTests
1515
{
16-
private BinarySerializationProtocol wireProtocol = new BinarySerializationProtocol();
16+
private BinarySerializationProtocol _wireProtocol = new BinarySerializationProtocol();
1717

1818
[Test]
1919
public void WriteAndReadBytes()
@@ -35,83 +35,83 @@ public void WriteAndReadBytes()
3535
Assert.That(copy, Is.EqualTo(bytes));
3636
}
3737

38-
//[Test]
39-
//public void DecodeSingleMessage()
40-
//{
41-
// var originalPackage = new TestPackage("mock-assembly.dll", "notest-assembly.dll");
42-
// var originalMessage = new TestEngineMessage(MessageCode.CommandResult, originalPackage.ToXml());
43-
44-
// var bytes = wireProtocol.Encode(originalMessage);
45-
// Console.WriteLine($"Serialized {bytes.Length} bytes.");
46-
47-
// var messages = new List<TestEngineMessage>(wireProtocol.Decode(bytes));
48-
// Assert.That(messages.Count, Is.EqualTo(1));
49-
// var message = messages[0];
50-
51-
// Assert.That(message.Code, Is.EqualTo(MessageCode.CommandResult));
52-
// Assert.That(message.Data, Is.EqualTo(originalPackage.ToXml()));
53-
// var newPackage = DeserializePackage(message.Data);
54-
// ComparePackages(newPackage, originalPackage);
55-
//}
56-
57-
//[TestCase(1)]
58-
//[TestCase(2)]
59-
//[TestCase(5)]
60-
//public void DecodeSplitMessages(int numMessages)
61-
//{
62-
// const int SPLIT_SIZE = 1000;
63-
64-
// var originalPackage = new TestPackage("mock-assembly.dll", "notest-assembly.dll");
65-
// var originalMessage = new TestEngineMessage(MessageCode.CommandResult, originalPackage.ToXml());
66-
67-
// var msgBytes = wireProtocol.Encode(originalMessage);
68-
// var msgLength = msgBytes.Length;
69-
// var allBytes = new byte[msgLength * numMessages];
70-
// for (int i = 0; i < numMessages; i++)
71-
// Array.Copy(msgBytes, 0, allBytes, i * msgLength, msgLength);
72-
73-
// Console.WriteLine($"Serialized {numMessages} messages in {allBytes.Length} bytes.");
74-
75-
// var messages = new List<TestEngineMessage>();
76-
77-
// for (int index = 0; index < allBytes.Length; index += SPLIT_SIZE)
78-
// {
79-
// var bytesToSend = Math.Min(allBytes.Length - index, SPLIT_SIZE);
80-
// var buffer = new byte[bytesToSend];
81-
// Array.Copy(allBytes, index, buffer, 0, bytesToSend);
82-
// messages.AddRange(wireProtocol.Decode(buffer));
83-
// Console.WriteLine($"Decoded {bytesToSend} bytes, message count is now {messages.Count}");
84-
// var expectedCount = (index + bytesToSend) / msgLength;
85-
// Assert.That(messages.Count, Is.EqualTo(expectedCount));
86-
// }
87-
88-
// foreach (TestEngineMessage message in messages)
89-
// {
90-
// Assert.That(message.Code, Is.EqualTo(MessageCode.CommandResult));
91-
// var newPackage = DeserializePackage(message.Data);
92-
// ComparePackages(newPackage, originalPackage);
93-
// }
94-
//}
95-
96-
////[Test]
97-
//public void DecodeMultipleMessages()
98-
//{
99-
// var commands = new string[] { "CMD1", "CMD2", "CMD3", "CMD4", "CMD5", "CMD6" };
100-
101-
// var stream = new MemoryStream();
102-
103-
// foreach (var command in commands)
104-
// {
105-
// var buffer = wireProtocol.Encode(new TestEngineMessage(command, null));
106-
// stream.Write(buffer, 0, buffer.Length);
107-
// }
108-
109-
// var received = new List<TestEngineMessage>(wireProtocol.Decode(stream.ToArray()));
110-
// Assert.That(received.Count, Is.EqualTo(commands.Length));
111-
112-
// for (int i = 0; i < commands.Length; i++)
113-
// Assert.That(received[i].CommandName, Is.EqualTo(commands[i]));
114-
//}
38+
[Test]
39+
public void DecodeSingleMessage()
40+
{
41+
var originalPackage = new TestPackage(new[] { "mock-assembly.dll", "notest-assembly.dll" });
42+
var originalMessage = new TestEngineMessage(MessageCode.CommandResult, originalPackage.ToXml());
43+
44+
var bytes = _wireProtocol.Encode(originalMessage);
45+
Console.WriteLine($"Serialized {bytes.Length} bytes.");
46+
47+
var messages = new List<TestEngineMessage>(_wireProtocol.Decode(bytes));
48+
Assert.That(messages.Count, Is.EqualTo(1));
49+
var message = messages[0];
50+
51+
Assert.That(message.Code, Is.EqualTo(MessageCode.CommandResult));
52+
Assert.That(message.Data, Is.EqualTo(originalPackage.ToXml()));
53+
//var newPackage = DeserializePackage(message.Data);
54+
//ComparePackages(newPackage, originalPackage);
55+
}
56+
57+
[TestCase(1)]
58+
[TestCase(2)]
59+
[TestCase(5)]
60+
public void DecodeSplitMessages(int numMessages)
61+
{
62+
const int SPLIT_SIZE = 1000;
63+
64+
var originalPackage = new TestPackage(new[] { "mock-assembly.dll", "notest-assembly.dll" });
65+
var originalMessage = new TestEngineMessage(MessageCode.CommandResult, originalPackage.ToXml());
66+
67+
var msgBytes = _wireProtocol.Encode(originalMessage);
68+
var msgLength = msgBytes.Length;
69+
var allBytes = new byte[msgLength * numMessages];
70+
for (int i = 0; i < numMessages; i++)
71+
Array.Copy(msgBytes, 0, allBytes, i * msgLength, msgLength);
72+
73+
Console.WriteLine($"Serialized {numMessages} messages in {allBytes.Length} bytes.");
74+
75+
var messages = new List<TestEngineMessage>();
76+
77+
for (int index = 0; index < allBytes.Length; index += SPLIT_SIZE)
78+
{
79+
var bytesToSend = Math.Min(allBytes.Length - index, SPLIT_SIZE);
80+
var buffer = new byte[bytesToSend];
81+
Array.Copy(allBytes, index, buffer, 0, bytesToSend);
82+
messages.AddRange(_wireProtocol.Decode(buffer));
83+
Console.WriteLine($"Decoded {bytesToSend} bytes, message count is now {messages.Count}");
84+
var expectedCount = (index + bytesToSend) / msgLength;
85+
Assert.That(messages.Count, Is.EqualTo(expectedCount));
86+
}
87+
88+
foreach (TestEngineMessage message in messages)
89+
{
90+
Assert.That(message.Code, Is.EqualTo(MessageCode.CommandResult));
91+
//var newPackage = DeserializePackage(message.Data);
92+
//ComparePackages(newPackage, originalPackage);
93+
}
94+
}
95+
96+
[Test]
97+
public void DecodeMultipleMessages()
98+
{
99+
var commands = new string[] { "CMD1", "CMD2", "CMD3", "CMD4", "CMD5", "CMD6" };
100+
101+
var stream = new MemoryStream();
102+
103+
foreach (var command in commands)
104+
{
105+
var buffer = _wireProtocol.Encode(new TestEngineMessage(command, null));
106+
stream.Write(buffer, 0, buffer.Length);
107+
}
108+
109+
var received = new List<TestEngineMessage>(_wireProtocol.Decode(stream.ToArray()));
110+
Assert.That(received.Count, Is.EqualTo(commands.Length));
111+
112+
for (int i = 0; i < commands.Length; i++)
113+
Assert.That(received[i].Code, Is.EqualTo(commands[i]));
114+
}
115115

116116
}
117117
}

src/NUnitEngine/nunit.engine.core.tests/Internal/TestPackageSerializationTests.cs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,25 @@ namespace NUnit.Engine.Internal
88
{
99
public class TestPackageSerializationTests
1010
{
11-
private static readonly string ASSEMBLY_1 = Path.GetFullPath("mock-assembly.dll");
12-
private static readonly string ASSEMBLY_2 = Path.GetFullPath("notest-assembly.dll");
13-
private static readonly TestPackage TEST_PACKAGE = new TestPackage(new string[] { "mock-assembly.dll", "notest-assembly.dll" });
14-
private static readonly string TEST_PACKAGE_XML =
15-
"<TestPackage id=\"0\"><Settings foo=\"bar\" />" +
16-
$"<TestPackage id=\"1\" fullname=\"{ASSEMBLY_1}\"><Settings foo=\"bar\" /></TestPackage>" +
17-
$"<TestPackage id=\"2\" fullname=\"{ASSEMBLY_2}\"><Settings foo=\"bar\" /></TestPackage>" +
18-
"</TestPackage>";
19-
private static readonly string TEST_PACKAGE_XML_WITH_XML_DECLARATION = "<?xml version = \"1.0\" encoding=\"utf-16\"?>" + TEST_PACKAGE_XML;
11+
private const string ASSEMBLY_1 = "mock-assembly.dll";
12+
private const string ASSEMBLY_2 = "notest-assembly.dll";
13+
14+
private static readonly TestPackage TEST_PACKAGE;
15+
private static readonly string TEST_PACKAGE_XML;
16+
private static readonly string TEST_PACKAGE_XML_WITH_XML_DECLARATION;
2017

2118
static TestPackageSerializationTests()
2219
{
20+
TEST_PACKAGE = new TestPackage(new string[] { "mock-assembly.dll", "notest-assembly.dll" });
2321
TEST_PACKAGE.AddSetting("foo", "bar");
22+
23+
TEST_PACKAGE_XML =
24+
$"<TestPackage id=\"{TEST_PACKAGE.ID}\"><Settings foo=\"bar\" />" +
25+
$"<TestPackage id=\"{TEST_PACKAGE.SubPackages[0].ID}\" fullname=\"{Path.GetFullPath(ASSEMBLY_1)}\"><Settings foo=\"bar\" /></TestPackage>" +
26+
$"<TestPackage id=\"{TEST_PACKAGE.SubPackages[1].ID}\" fullname=\"{Path.GetFullPath(ASSEMBLY_2)}\"><Settings foo=\"bar\" /></TestPackage>" +
27+
"</TestPackage>";
28+
29+
TEST_PACKAGE_XML_WITH_XML_DECLARATION = "<?xml version = \"1.0\" encoding=\"utf-16\"?>" + TEST_PACKAGE_XML;
2430
}
2531

2632
[Test]
@@ -58,6 +64,7 @@ public void TestPackageRoundTrip()
5864
{
5965
var xml = TEST_PACKAGE.ToXml();
6066
Console.WriteLine(xml);
67+
Assert.That(xml, Is.EqualTo(TEST_PACKAGE_XML));
6168
var package = new TestPackage().FromXml(xml);
6269
ComparePackages(package, TEST_PACKAGE);
6370
}

src/NUnitEngine/nunit.engine.core/Communication/Messages/CommandReturnMessage.cs

Lines changed: 0 additions & 17 deletions
This file was deleted.

src/NUnitEngine/nunit.engine.core/Communication/Messages/MessageCode.cs

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -22,32 +22,5 @@ public class MessageCode
2222

2323
public const string ProgressReport = "PROG";
2424
public const string CommandResult = "RSLT";
25-
26-
public static string FromCommand(string command)
27-
{
28-
switch (command)
29-
{
30-
case "CreateRunner":
31-
return CreateRunner;
32-
case "Load":
33-
return LoadCommand;
34-
case "Reload":
35-
return ReloadCommand;
36-
case "Unload":
37-
return UnloadCommand;
38-
case "Explore":
39-
return ExploreCommand;
40-
case "CountTestCases":
41-
return CountCasesCommand;
42-
case "Run":
43-
return RunCommand;
44-
case "RunAsync":
45-
return RunAsyncCommand;
46-
case "Stop":
47-
return RequestStopCommand;
48-
default:
49-
throw new ArgumentException("Invalid command", nameof(command));
50-
}
51-
}
5225
}
5326
}

src/NUnitEngine/nunit.engine.core/Communication/Transports/Tcp/SocketReader.cs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -48,23 +48,5 @@ public TestEngineMessage GetNextMessage()
4848

4949
return _msgQueue.Dequeue();
5050
}
51-
52-
/// <summary>
53-
/// Get the next message to arrive, which must be of the
54-
/// specified message type.
55-
/// </summary>
56-
/// <typeparam name="TMessage">The expected message type</typeparam>
57-
/// <returns>A message of type TMessage</returns>
58-
/// <exception cref="InvalidOperationException">A message of a different type was received</exception>
59-
public TMessage GetNextMessage<TMessage>() where TMessage : TestEngineMessage
60-
{
61-
var receivedMessage = GetNextMessage();
62-
var expectedMessage = receivedMessage as TMessage;
63-
64-
if (expectedMessage == null)
65-
throw new InvalidOperationException($"Expected a {typeof(TMessage)} but received a {receivedMessage.GetType()}");
66-
67-
return expectedMessage;
68-
}
6951
}
7052
}

0 commit comments

Comments
 (0)