@@ -39,4 +39,32 @@ TEST(V1Tests, TestSystemMsgCodeUpgrade) {
3939 const auto res5 = target.ToV2 ();
4040 EXPECT_EQ (res5.code , SystemCode::ReplayCompleted);
4141}
42+
43+ TEST (V1Tests, TestErrorMsgCodeUpgrade) {
44+ v1::ErrorMsg target{RecordHeader{
45+ sizeof (v1::ErrorMsg) / RecordHeader::kLengthMultiplier , RType::Error, 0 , 0 , {}}};
46+ std::strcpy (target.err .data (), " User or API key deactivated" );
47+ const auto res1 = target.ToV2 ();
48+ EXPECT_EQ (res1.code , ErrorCode::ApiKeyDeactivated);
49+
50+ target.err = {};
51+ std::strcpy (target.err .data (), " User has reached their open connection limit" );
52+ const auto res2 = target.ToV2 ();
53+ EXPECT_EQ (res2.code , ErrorCode::ConnectionLimitExceeded);
54+
55+ target.err = {};
56+ std::strcpy (target.err .data (), " Failed to resolve symbol: AAPL" );
57+ const auto res3 = target.ToV2 ();
58+ EXPECT_EQ (res3.code , ErrorCode::SymbolResolutionFailed);
59+
60+ target.err = {};
61+ std::strcpy (target.err .data (), " Internal error" );
62+ const auto res4 = target.ToV2 ();
63+ EXPECT_EQ (res4.code , ErrorCode::InternalError);
64+
65+ target.err = {};
66+ std::strcpy (target.err .data (), " Slow client detected for mbo. Skipped records" );
67+ const auto res5 = target.ToV2 ();
68+ EXPECT_EQ (res5.code , ErrorCode::SkippedRecordsAfterSlowReading);
69+ }
4270} // namespace databento::v1::tests
0 commit comments