Dreamine.FullKit.Tests 1.0.0.0
Dreamine.FullKit.Tests 기능을 검증하는 자동화 테스트 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests 클래스 참조sealed

더 자세히 ...

Public 멤버 함수

void MemoryAreaMapper_MapsDeviceTypesAndAreaKinds ()
void FrameBuilder_BuildsMemoryReadFrame ()
void FrameBuilder_RejectsOutOfRangeAddressWithClearMessage ()
void FrameBuilder_GeneratesDistinctSidsAcrossParallelCalls ()
void ResponseParser_ExtractsPayloadAndParsesWordsAndBits ()
void TcpPacket_WrapsAndExtractsFrame ()

상세한 설명

Omron Fins Protocol Tests 기능과 관련 상태를 캡슐화합니다.

OmronFinsProtocolTests.cs 파일의 16 번째 라인에서 정의되었습니다.

멤버 함수 문서화

◆ FrameBuilder_BuildsMemoryReadFrame()

void Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.FrameBuilder_BuildsMemoryReadFrame ( )
inline

Frame Builder Builds Memory Read Frame 작업을 수행합니다.

OmronFinsProtocolTests.cs 파일의 47 번째 라인에서 정의되었습니다.

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 }

◆ FrameBuilder_GeneratesDistinctSidsAcrossParallelCalls()

void Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.FrameBuilder_GeneratesDistinctSidsAcrossParallelCalls ( )
inline

Frame Builder Generates Distinct Sids Across Parallel Calls 작업을 수행합니다.

OmronFinsProtocolTests.cs 파일의 93 번째 라인에서 정의되었습니다.

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 }

◆ FrameBuilder_RejectsOutOfRangeAddressWithClearMessage()

void Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.FrameBuilder_RejectsOutOfRangeAddressWithClearMessage ( )
inline

Frame Builder Rejects Out Of Range Address With Clear Message 작업을 수행합니다.

OmronFinsProtocolTests.cs 파일의 69 번째 라인에서 정의되었습니다.

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 }

◆ MemoryAreaMapper_MapsDeviceTypesAndAreaKinds()

void Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.MemoryAreaMapper_MapsDeviceTypesAndAreaKinds ( )
inline

Memory Area Mapper Maps Device Types And Area Kinds 작업을 수행합니다.

OmronFinsProtocolTests.cs 파일의 27 번째 라인에서 정의되었습니다.

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 }

◆ ResponseParser_ExtractsPayloadAndParsesWordsAndBits()

void Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.ResponseParser_ExtractsPayloadAndParsesWordsAndBits ( )
inline

Response Parser Extracts Payload And Parses Words And Bits 작업을 수행합니다.

OmronFinsProtocolTests.cs 파일의 115 번째 라인에서 정의되었습니다.

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 }

◆ TcpPacket_WrapsAndExtractsFrame()

void Dreamine.FullKit.Tests.PLC.OmronFinsProtocolTests.TcpPacket_WrapsAndExtractsFrame ( )
inline

Tcp Packet Wraps And Extracts Frame 작업을 수행합니다.

OmronFinsProtocolTests.cs 파일의 139 번째 라인에서 정의되었습니다.

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 }

이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: