Repository navigation
Expand file tree
/
Copy pathIssue435Tests.cs
More file actions
80 lines (66 loc) · 3.23 KB
/
Copy pathIssue435Tests.cs
File metadata and controls
80 lines (66 loc) · 3.23 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
// Copyright (C) 2017 MarketFactory, Inc
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Org.SbeTool.Sbe.Dll;
namespace Org.SbeTool.Sbe.Tests
{
[TestClass]
public unsafe class Issue435Tests
{
private byte[] _buffer;
private DirectBuffer _directBuffer;
private Issue435.MessageHeader _messageHeader;
private Issue435.Issue435 _issue435;
[TestInitialize]
public void SetUp()
{
_buffer = new Byte[4096];
_directBuffer = new DirectBuffer(_buffer);
_issue435 = new Issue435.Issue435();
_messageHeader = new Issue435.MessageHeader();
_messageHeader.Wrap(_directBuffer, 0, Issue435.MessageHeader.SbeSchemaVersion);
_messageHeader.BlockLength = Issue435.Issue435.BlockLength;
_messageHeader.SchemaId = Issue435.Issue435.SchemaId;
_messageHeader.TemplateId = Issue435.Issue435.TemplateId;
_messageHeader.Version = Issue435.Issue435.SchemaVersion;
// <ref> element in non-standard message header
_messageHeader.S = Issue435.SetRef.One;
}
[TestMethod]
public void MessageHeaderNonStandardSizeTest()
{
// Check size is normal eight bytes plus one extra for S
Assert.IsTrue(Issue435.MessageHeader.Size == 9, "MessageHeader size has unexpected length");
}
[TestMethod]
public void Issue435RefTest()
{
_issue435.WrapForEncode(_directBuffer, Issue435.MessageHeader.Size);
// <ref> tag in body
_issue435.Example.E = Issue435.EnumRef.Two;
// Check size is normal eight bytes plus one extra for S
Assert.IsTrue(Issue435.Issue435.BlockLength == 1, "Issue435 size has unexpected blocklength");
// Now let's decode
_messageHeader.Wrap(_directBuffer, 0, Issue435.Issue435.SchemaVersion);
Assert.AreEqual(Issue435.Issue435.BlockLength, _messageHeader.BlockLength, "Incorrect BlockLength");
Assert.AreEqual(Issue435.Issue435.SchemaId, _messageHeader.SchemaId, "Incorrect SchemaId");
Assert.AreEqual(Issue435.Issue435.TemplateId, _messageHeader.TemplateId, "Incorrect TemplateId");
Assert.AreEqual(Issue435.Issue435.SchemaVersion, _messageHeader.Version, "Incorrect SchemaVersion");
Assert.AreEqual(Issue435.SetRef.One, _messageHeader.S, "Incorrect SetRef.One");
_issue435.WrapForDecode(_directBuffer, Issue435.MessageHeader.Size, _messageHeader.BlockLength, _messageHeader.Version);
Assert.AreEqual(Issue435.EnumRef.Two, _issue435.Example.E, "Incorrect EnuRef");
}
}
}