Skip to content

Commit

Permalink
Added a unit test for encoding a TIM with payload type 'OdeAsdPayload'
Browse files Browse the repository at this point in the history
  • Loading branch information
dmccoystephenson committed Dec 13, 2023
1 parent bcc0d5b commit 27f87d8
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 2 deletions.
1 change: 1 addition & 0 deletions data/InputData.encoding.tim.odeasdpayload.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<?xml version="1.0"?><OdeAsn1Data><metadata><payloadType>us.dot.its.jpo.ode.model.OdeAsdPayload</payloadType><serialId><streamId>92073723-5b66-461f-97da-00042ef7056f</streamId><bundleSize>1</bundleSize><bundleId>1</bundleId><recordId>0</recordId><serialNumber>1</serialNumber></serialId><odeReceivedAt>2023-12-13T21:41:58.279079Z</odeReceivedAt><schemaVersion>6</schemaVersion><maxDurationTime>1440</maxDurationTime><recordGeneratedAt>2020-04-30T14:24:11.581Z</recordGeneratedAt><recordGeneratedBy>TMC</recordGeneratedBy><sanitized>false</sanitized><odePacketID>67AEF692F8BB63067D</odePacketID><odeTimStartDateTime>2020-04-30T14:23:59.497Z</odeTimStartDateTime><request><ode><version>3</version><verb>POST</verb></ode><sdw><serviceRegion><nwCorner><latitude>41.715253</latitude><longitude>-106.229851</longitude></nwCorner><seCorner><latitude>40.227193</latitude><longitude>-104.620706</longitude></seCorner></serviceRegion><ttl>oneday</ttl><recordId>9044E029</recordId></sdw></request><encodings><encodings><elementName>MessageFrame</elementName><elementType>MessageFrame</elementType><encodingRule>UPER</encodingRule></encodings><encodings><elementName>Ieee1609Dot2Data</elementName><elementType>Ieee1609Dot2Data</elementType><encodingRule>COER</encodingRule></encodings><encodings><elementName>AdvisorySituationData</elementName><elementType>AdvisorySituationData</elementType><encodingRule>UPER</encodingRule></encodings></encodings></metadata><payload><dataType>us.dot.its.jpo.ode.plugin.j2735.DdsAdvisorySituationData</dataType><data><AdvisorySituationData><dialogID>156</dialogID><seqID>5</seqID><groupID>00000000</groupID><requestID>E568A30F</requestID><recordID>9044E029</recordID><timeToLive>2</timeToLive><serviceRegion><nwCorner><lat>417152530</lat><long>-1062298510</long></nwCorner><seCorner><lat>402271930</lat><long>-1046207060</long></seCorner></serviceRegion><asdmDetails><asdmID>E568A30F</asdmID><asdmType>2</asdmType><distType>02</distType><startTime><year>0</year><month>0</month><day>0</day><hour>31</hour><minute>60</minute></startTime><stopTime><year>0</year><month>0</month><day>0</day><hour>31</hour><minute>60</minute></stopTime><advisoryMessage><Ieee1609Dot2Data><protocolVersion>3</protocolVersion><content><unsecuredData><MessageFrame><messageId>31</messageId><value><TravelerInformation><msgCnt>1</msgCnt><timeStamp>173664</timeStamp><packetID>67AEF692F8BB63067D</packetID><urlB>null</urlB><dataFrames><TravelerDataFrame><notUsed>0</notUsed><frameType><advisory></advisory></frameType><msgId><roadSignID><position><lat>406047600</lat><long>-1050013900</long></position><viewAngle>1111111111111111</viewAngle><mutcdCode><warning></warning></mutcdCode></roadSignID></msgId><startYear>2020</startYear><startTime>173663</startTime><durationTime>1440</durationTime><priority>5</priority><notUsed1>0</notUsed1><regions><GeographicalPath><name>mypathname</name><id><region>0</region><id>0</id></id><anchor><lat>406047600</lat><long>-1050013900</long></anchor><laneWidth>32700</laneWidth><directionality><both></both></directionality><closedPath><false /></closedPath><direction>1000000000000001</direction><description><path><scale>0</scale><offset><xy><nodes><NodeXY><delta><node-LatLon><lon>-1050012800</lon><lat>406190100</lat></node-LatLon></delta></NodeXY><NodeXY><delta><node-LatLon><lon>-1050009700</lon><lat>406334900</lat></node-LatLon></delta></NodeXY><NodeXY><delta><node-LatLon><lon>-1050008600</lon><lat>406480600</lat></node-LatLon></delta></NodeXY><NodeXY><delta><node-LatLon><lon>-1050009200</lon><lat>406625700</lat></node-LatLon></delta></NodeXY><NodeXY><delta><node-LatLon><lon>-1050008000</lon><lat>406769500</lat></node-LatLon></delta></NodeXY><NodeXY><delta><node-LatLon><lon>-1050012800</lon><lat>406190100</lat></node-LatLon></delta></NodeXY><NodeXY><delta><node-LatLon><lon>-1050009700</lon><lat>406334900</lat></node-LatLon></delta></NodeXY><NodeXY><delta><node-LatLon><lon>-1050008600</lon><lat>406480600</lat></node-LatLon></delta></NodeXY><NodeXY><delta><node-LatLon><lon>-1050009200</lon><lat>406625700</lat></node-LatLon></delta></NodeXY><NodeXY><delta><node-LatLon><lon>-1050008000</lon><lat>406769500</lat></node-LatLon></delta></NodeXY></nodes></xy></offset></path></description></GeographicalPath></regions><notUsed2>0</notUsed2><notUsed3>0</notUsed3><content><advisory><SEQUENCE><item><itis>5127</itis></item></SEQUENCE></advisory></content><url>null</url></TravelerDataFrame></dataFrames></TravelerInformation></value></MessageFrame></unsecuredData></content></Ieee1609Dot2Data></advisoryMessage></asdmDetails></AdvisorySituationData></data></payload></OdeAsn1Data>
File renamed without changes.
28 changes: 26 additions & 2 deletions src/tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ const char *ASD_ONE609_HEX = "44400000000084782786283B90A7148D2B0A89C49F8A85A776
// }

TEST_CASE("Encode ASD", "[encoding]" ) {
std::cout << "=== Encode ASD ===" << std::endl;

// prepare
asn1_codec.make_loggers_testing();

Expand Down Expand Up @@ -93,6 +95,8 @@ TEST_CASE("Encode ASD", "[encoding]" ) {
// }

TEST_CASE("Encode 1609", "[encoding]" ) {
std::cout << "=== Encode 1609 ===" << std::endl;

// prepare
asn1_codec.make_loggers_testing();

Expand All @@ -108,6 +112,8 @@ TEST_CASE("Encode 1609", "[encoding]" ) {
}

TEST_CASE("Encode ASD_1609", "[encoding]" ) {
std::cout << "=== Encode ASD_1609 ===" << std::endl;

// prepare
asn1_codec.make_loggers_testing();

Expand Down Expand Up @@ -172,12 +178,28 @@ TEST_CASE("Encode ASD_1609", "[encoding]" ) {
// CHECK(std::strcmp(byte_node.text().get(), ASD_ONE609_HEX) == 0);
// }

TEST_CASE("Encode TIM", "[encoding]") {
TEST_CASE("Encode TIM with payload type 'OdeTimPayload'", "[encoding][odetimpayload]") {
std::cout << "=== Encode TIM with payload type 'OdeTimPayload' ===" << std::endl;

// prepare
asn1_codec.make_loggers_testing();

std::stringstream out8;
CHECK(asn1_codec.file_test("data/InputData.encoding.tim.odetimpayload.xml", out8) == EXIT_SUCCESS);
parse_result = output_doc.load(out8, pugi::parse_default | pugi::parse_declaration | pugi::parse_doctype | pugi::parse_trim_pcdata);
CHECK(parse_result);
payload_node = ode_payload_query.evaluate_node(output_doc).node();
CHECK(payload_node);
}

TEST_CASE("Encode TIM with payload type 'OdeAsdPayload'", "[encoding][odeasdpayload]") {
std::cout << "=== Encode TIM with payload type 'OdeAsdPayload' ===" << std::endl;

// prepare
asn1_codec.make_loggers_testing();

std::stringstream out8;
CHECK(asn1_codec.file_test("data/InputData.encoding.tim.xml", out8) == EXIT_SUCCESS);
CHECK(asn1_codec.file_test("data/InputData.encoding.tim.odeasdpayload.xml", out8) == EXIT_SUCCESS);
parse_result = output_doc.load(out8, pugi::parse_default | pugi::parse_declaration | pugi::parse_doctype | pugi::parse_trim_pcdata);
CHECK(parse_result);
payload_node = ode_payload_query.evaluate_node(output_doc).node();
Expand All @@ -187,6 +209,8 @@ TEST_CASE("Encode TIM", "[encoding]") {
// TODO check oracles with decoder

TEST_CASE("Decode BSM", "[decoding]") {
std::cout << "=== Decode BSM ===" << std::endl;

// prepare
asn1_codec.make_loggers_testing();

Expand Down

0 comments on commit 27f87d8

Please sign in to comment.