Files
deskflow/src/test/unittests/shared/SerialKeyEditionTests.cpp
Nick Bolton 4690b61551 Simplify compile options and use comprehensive edition logic (#7365)
* Simplify options

* Use more sensible edition logic

* Use set instead of option for string

* Improve macro for product name

* Add tests launch config

* Restore unregistered state

* Reorganize cases for title and improve function name

* Code coverage on by default

* Fixed copyright

* Improve code coverage and test readability

* Separate build-all and build-coverage

* Back out coverage on by default

* Fixed bad var in cmake

* More verbose logging for coverage

* Restore tasks

* Restore preLaunchTask

* Use default comparitor

* Move temp files to temp dir

* Add tasks for tests

* Support for wstring

* Upgrade sonar-scanner to 6 on Debian 12

* Use modern pip install

* Install python for sonarcloud

* Use Ubuntu and install deps

* Fixed sonar-scanner URL

* Fix exported dir

* Persist build dir

* Don't use venv for pip install gcovr

* Fixed another path

* Update actions/checkout to v4 for SonarCloud analysis workflow

* Add coverage task

* Improve coverage for SerialKeyEdition.cpp

* Enable licensing for builds

* Fixed invalid macro names, missing arguments, etc

* Fixed more copyright

* Fixed incorrect use of "enterprise"

* Fixed incorrect use of "business"

* Experiment with environment

* Make package prefix variable

* Add environment matrix to all OS

* Improve job names

* Make job names easier to read

* Roll back environment matrix (too much noise)

* Fixed: default should override required

* Refactor CI with vars

* Fixed arg for env.get_env
2024-07-04 10:14:54 +01:00

134 lines
3.7 KiB
C++

/*
* synergy -- mouse and keyboard sharing utility
* Copyright (C) 2016 Symless Ltd.
*
* This package is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* found in the file LICENSE that should have accompanied this file.
*
* This package is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "shared/EditionType.h"
#define TEST_ENV
#include "shared/SerialKeyEdition.h"
#include "test/global/gtest.h"
TEST(SerialKeyEditionTests, equal_operator) {
SerialKeyEdition edition1(kPro);
SerialKeyEdition edition2(kPro);
EXPECT_EQ(edition1, edition2);
}
TEST(SerialKeyEditionTests, ctor_default_unregistered) {
SerialKeyEdition edition;
EXPECT_EQ(kUnregistered, edition.getType());
EXPECT_EQ(SerialKeyEdition::Unregistered, edition.getName());
EXPECT_EQ("Synergy 1 (Unregistered)", edition.getProductName());
EXPECT_FALSE(edition.isValid());
}
TEST(SerialKeyEditionTests, ctor_businessName_isValid) {
SerialKeyEdition edition(SerialKeyEdition::Buisiness);
EXPECT_EQ(kBusiness, edition.getType());
EXPECT_TRUE(edition.isValid());
}
TEST(SerialKeyEditionTests, ctor_basicType_isValid) {
SerialKeyEdition edition(kBasic);
EXPECT_TRUE(edition.isValid());
}
TEST(SerialKeyEditionTests, setType_invalidType_unregistered) {
SerialKeyEdition edition;
edition.setType("stub");
EXPECT_EQ(kUnregistered, edition.getType());
}
TEST(SerialKeyEditionTests, setType_lite_isValid) {
SerialKeyEdition edition;
edition.setType(kLite);
EXPECT_EQ(kLite, edition.getType());
EXPECT_EQ(SerialKeyEdition::Lite, edition.getName());
EXPECT_EQ("Synergy 1", edition.getProductName());
EXPECT_TRUE(edition.isValid());
}
TEST(SerialKeyEditionTests, setType_ultimate_isValid) {
SerialKeyEdition edition;
edition.setType(SerialKeyEdition::Ultimate);
EXPECT_EQ(kUltimate, edition.getType());
EXPECT_EQ(SerialKeyEdition::Ultimate, edition.getName());
EXPECT_EQ("Synergy 1 Ultimate", edition.getProductName());
}
TEST(SerialKeyEditionTests, setType_pro_isValid) {
SerialKeyEdition edition;
edition.setType(kPro);
EXPECT_EQ(kPro, edition.getType());
EXPECT_EQ(SerialKeyEdition::Pro, edition.getName());
EXPECT_EQ("Synergy 1 Pro", edition.getProductName());
EXPECT_TRUE(edition.isValid());
}
TEST(SerialKeyEditionTests, setType_basic_isValid) {
SerialKeyEdition edition;
edition.setType(kBasic);
EXPECT_EQ(kBasic, edition.getType());
EXPECT_EQ(SerialKeyEdition::Basic, edition.getName());
EXPECT_EQ("Synergy 1 Basic", edition.getProductName());
}
TEST(SerialKeyEditionTests, setType_business_isValid) {
SerialKeyEdition edition;
edition.setType(kBusiness);
EXPECT_EQ(kBusiness, edition.getType());
EXPECT_EQ(SerialKeyEdition::Buisiness, edition.getName());
EXPECT_EQ("Synergy 1 Business", edition.getProductName());
}
TEST(SerialKeyEditionTests, setType_basicChina_isValid) {
SerialKeyEdition edition;
edition.setType(kBasicChina);
EXPECT_EQ(kBasicChina, edition.getType());
EXPECT_EQ(SerialKeyEdition::BasicChina, edition.getName());
EXPECT_EQ("Synergy 1 中文版", edition.getProductName());
EXPECT_TRUE(edition.isChina());
}
TEST(SerialKeyEditionTests, setType_proChina_isValid) {
SerialKeyEdition edition;
edition.setType(kProChina);
EXPECT_EQ(kProChina, edition.getType());
EXPECT_EQ(SerialKeyEdition::ProChina, edition.getName());
EXPECT_EQ("Synergy 1 Pro 中文版", edition.getProductName());
EXPECT_TRUE(edition.isChina());
}