Dreamine.FullKit.Tests
1.0.0.0
Dreamine.FullKit.Tests 기능을 검증하는 자동화 테스트 프로젝트입니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
OmronFinsProtocolTests.cs
이 파일의 문서화 페이지로 가기
1
using
Dreamine.PLC.Abstractions.Devices;
2
using
Dreamine.PLC.Omron.Fins.Devices;
3
using
Dreamine.PLC.Omron.Fins.Options;
4
using
Dreamine.PLC.Omron.Fins.Protocol;
5
6
namespace
Dreamine.FullKit.Tests.PLC
;
7
16
public
sealed
class
OmronFinsProtocolTests
17
{
26
[Fact]
27
public
void
MemoryAreaMapper_MapsDeviceTypesAndAreaKinds
()
28
{
29
var dmWord = OmronFinsMemoryAreaMapper.Map(
new
PlcAddress(PlcDeviceType.D, 0), bitAccess:
false
);
30
var dmBit = OmronFinsMemoryAreaMapper.Map(
new
PlcAddress(PlcDeviceType.D, 0), bitAccess:
true
);
31
32
Assert.Equal(OmronFinsMemoryAreaCode.DmWord, dmWord);
33
Assert.Equal(OmronFinsMemoryAreaCode.DmBit, dmBit);
34
Assert.Equal(PlcDeviceType.D, OmronFinsMemoryAreaMapper.ToDeviceType(dmWord));
35
Assert.True(OmronFinsMemoryAreaMapper.IsBitArea(dmBit));
36
}
37
46
[Fact]
47
public
void
FrameBuilder_BuildsMemoryReadFrame
()
48
{
49
var options =
new
OmronFinsConnectionOptions { DestinationNode = 2, SourceNode = 1 };
50
var frame =
new
OmronFinsFrameBuilder()
51
.BuildMemoryAreaRead(options,
new
PlcAddress(PlcDeviceType.D, 100), 2, bitAccess:
false
);
52
53
Assert.Equal(0x80, frame[0]);
54
Assert.Equal(2, frame[4]);
55
Assert.Equal(1, frame[7]);
56
Assert.Equal((
byte
)((ushort)OmronFinsCommand.MemoryAreaRead >> 8), frame[10]);
57
Assert.Equal(OmronFinsMemoryAreaCode.DmWord, frame[12]);
58
}
59
68
[Fact]
69
public
void
FrameBuilder_RejectsOutOfRangeAddressWithClearMessage
()
70
{
71
var options =
new
OmronFinsConnectionOptions();
72
var builder =
new
OmronFinsFrameBuilder();
73
74
var ex = Assert.Throws<ArgumentOutOfRangeException>(() =>
75
builder.BuildMemoryAreaRead(
76
options,
77
new
PlcAddress(PlcDeviceType.D, 65536),
78
1,
79
bitAccess:
false
));
80
81
Assert.Contains(
"between 0 and 65535"
, ex.Message);
82
}
83
92
[Fact]
93
public
void
FrameBuilder_GeneratesDistinctSidsAcrossParallelCalls
()
94
{
95
var options =
new
OmronFinsConnectionOptions();
96
var builder =
new
OmronFinsFrameBuilder();
97
98
var sids = Enumerable.Range(0, 64)
99
.AsParallel()
100
.Select(_ => builder.BuildMemoryAreaRead(options,
new
PlcAddress(PlcDeviceType.D, 0), 1,
false
)[9])
101
.ToArray();
102
103
Assert.Equal(64, sids.Distinct().Count());
104
}
105
114
[Fact]
115
public
void
ResponseParser_ExtractsPayloadAndParsesWordsAndBits
()
116
{
117
var parser =
new
OmronFinsResponseParser();
118
var frame =
new
byte
[18];
119
frame[14] = 0x12;
120
frame[15] = 0x34;
121
frame[16] = 0x00;
122
frame[17] = 0x01;
123
124
var payload = parser.ExtractPayload(frame).Value!;
125
126
Assert.Equal(
new
short
[] { 0x1234, 1 }, parser.ParseWords(payload, 2).Value);
127
Assert.Equal(
new
[] {
true
,
true
}, parser.ParseBits(
new
byte
[] { 1, 2 }, 2).Value);
128
}
129
138
[Fact]
139
public
void
TcpPacket_WrapsAndExtractsFrame
()
140
{
141
var frame =
new
byte
[] { 1, 2, 3 };
142
var packet = OmronFinsTcpPacket.Wrap(frame);
143
144
Assert.Equal((
byte
)
'F'
, packet[0]);
145
Assert.Equal(frame, OmronFinsTcpPacket.Extract(packet));
146
Assert.Throws<InvalidOperationException>(() => OmronFinsTcpPacket.Extract(
new
byte
[] { 1, 2 }));
147
}
148
}
Dreamine.FullKit.Tests.PLC
Definition
ComponentFormatterTests.cs:7
Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests
Definition
OmronFinsProtocolTests.cs:17
Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.FrameBuilder_RejectsOutOfRangeAddressWithClearMessage
void FrameBuilder_RejectsOutOfRangeAddressWithClearMessage()
Definition
OmronFinsProtocolTests.cs:69
Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.FrameBuilder_BuildsMemoryReadFrame
void FrameBuilder_BuildsMemoryReadFrame()
Definition
OmronFinsProtocolTests.cs:47
Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.MemoryAreaMapper_MapsDeviceTypesAndAreaKinds
void MemoryAreaMapper_MapsDeviceTypesAndAreaKinds()
Definition
OmronFinsProtocolTests.cs:27
Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.ResponseParser_ExtractsPayloadAndParsesWordsAndBits
void ResponseParser_ExtractsPayloadAndParsesWordsAndBits()
Definition
OmronFinsProtocolTests.cs:115
Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.FrameBuilder_GeneratesDistinctSidsAcrossParallelCalls
void FrameBuilder_GeneratesDistinctSidsAcrossParallelCalls()
Definition
OmronFinsProtocolTests.cs:93
Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.TcpPacket_WrapsAndExtractsFrame
void TcpPacket_WrapsAndExtractsFrame()
Definition
OmronFinsProtocolTests.cs:139
PLC
OmronFinsProtocolTests.cs
다음에 의해 생성됨 :
1.17.0