// Copyright (C) 2022 The Qt Company Ltd. // Copyright (C) 2022 Alexey Edelev , Viktor Kopp // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "syntax.qpb.h" #include #include #include #include class QtProtobufSyntaxTest : public QObject { Q_OBJECT private slots: void UnderscoresTest(); void UpperCaseTest(); void ReservedTest(); void ReservedUpperCaseTest(); void ReservedEnumTest(); void LowerCaseEnumTest(); }; using namespace qtprotobufnamespace::tests; void QtProtobufSyntaxTest::UnderscoresTest() { //Sanity compilation checks Message_Uderscore_name msg1; MessageUderscorename msg2; MessageUnderscoreField msg3; PriorMessageUnderscoreField msg4; FollowingMessageUnderscoreField msg5; CombinedMessageUnderscoreField msg6; qProtobufAssertMessagePropertyRegistered(1, "QtProtobuf::sint32", "underScoreMessageField"); qProtobufAssertMessagePropertyRegistered(1, "QtProtobuf::sint32", "underScoreMessageField"); qProtobufAssertMessagePropertyRegistered(1, "QtProtobuf::sint32", "underScoreMessageField"); qProtobufAssertMessagePropertyRegistered(1, "QtProtobuf::sint32", "underScoreMessageField"); qProtobufAssertMessagePropertyRegistered(1, "QtProtobuf::sint32", "underScoreMessageField"); } void QtProtobufSyntaxTest::UpperCaseTest() { qProtobufAssertMessagePropertyRegistered(1, "QtProtobuf::sint32", "testField"); } void QtProtobufSyntaxTest::ReservedTest() { qProtobufAssertMessagePropertyRegistered(1, "QtProtobuf::sint32", "import_proto"); qProtobufAssertMessagePropertyRegistered(2, "QtProtobuf::sint32", "property_proto"); qProtobufAssertMessagePropertyRegistered(3, "QtProtobuf::sint32", "id_proto"); } void QtProtobufSyntaxTest::ReservedUpperCaseTest() { qProtobufAssertMessagePropertyRegistered(1, "QtProtobuf::sint32", "import_proto"); qProtobufAssertMessagePropertyRegistered(2, "QtProtobuf::sint32", "property_proto"); qProtobufAssertMessagePropertyRegistered(3, "QtProtobuf::sint32", "id_proto"); } void QtProtobufSyntaxTest::ReservedEnumTest() { QVERIFY(MessageEnumReserved::staticMetaObject.enumeratorCount() > 0); QMetaEnum simpleEnum; for (int i = 0; i < MessageEnumReserved::staticMetaObject.enumeratorCount(); i++) { QMetaEnum tmp = MessageEnumReserved::staticMetaObject.enumerator(i); if (QString(tmp.name()) == QString("ReservedEnum")) { simpleEnum = tmp; break; } } QVERIFY(simpleEnum.isValid()); QCOMPARE(simpleEnum.key(0), "Import"); QCOMPARE(simpleEnum.key(1), "Property"); QCOMPARE(simpleEnum.key(2), "Id"); QCOMPARE(simpleEnum.value(0), 0); QCOMPARE(simpleEnum.value(1), 1); QCOMPARE(simpleEnum.value(2), 2); } void QtProtobufSyntaxTest::LowerCaseEnumTest() { QVERIFY(MessageEnumReserved::staticMetaObject.enumeratorCount() > 0); QMetaEnum simpleEnum; for (int i = 0; i < MessageEnumReserved::staticMetaObject.enumeratorCount(); i++) { QMetaEnum tmp = MessageEnumReserved::staticMetaObject.enumerator(i); if (QString(tmp.name()) == QString("LowerCaseEnum")) { simpleEnum = tmp; break; } } QVERIFY(simpleEnum.isValid()); QCOMPARE(simpleEnum.key(0), "EnumValue0"); QCOMPARE(simpleEnum.key(1), "EnumValue1"); QCOMPARE(simpleEnum.key(2), "EnumValue2"); } QTEST_MAIN(QtProtobufSyntaxTest) #include "tst_protobuf_syntax.moc"