#5657 Fix SerialKey construction in unit tests

This commit is contained in:
Andrew Nelless 2016-10-17 16:12:33 +01:00
parent 714b2f6440
commit 7eefa49c77
3 changed files with 13 additions and 13 deletions

View File

@ -181,7 +181,7 @@ SerialKey::email() const
} }
std::string std::string
SerialKey::decode(const std::string& serial) const SerialKey::decode(const std::string& serial)
{ {
static const char* const lut = "0123456789ABCDEF"; static const char* const lut = "0123456789ABCDEF";
string output; string output;
@ -215,6 +215,8 @@ SerialKey::parse(std::string plainSerial)
string parityStart = plainSerial.substr(0, 1); string parityStart = plainSerial.substr(0, 1);
string parityEnd = plainSerial.substr(plainSerial.length() - 1, 1); string parityEnd = plainSerial.substr(plainSerial.length() - 1, 1);
m_valid = false;
// check for parity chars { and }, record parity result, then remove them. // check for parity chars { and }, record parity result, then remove them.
if (parityStart == "{" && parityEnd == "}") { if (parityStart == "{" && parityEnd == "}") {
plainSerial = plainSerial.substr(1, plainSerial.length() - 2); plainSerial = plainSerial.substr(1, plainSerial.length() - 2);

View File

@ -40,10 +40,11 @@ public:
Edition edition() const; Edition edition() const;
std::string toString() const; std::string toString() const;
static std::string decode(const std::string& serial);
static Edition parseEdition(const std::string& editionStr);
private: private:
std::string decode(const std::string& serial) const;
void parse(std::string plainSerial); void parse(std::string plainSerial);
Edition parseEdition(const std::string& editionStr);
std::string editionString() const; std::string editionString() const;
#ifdef TEST_ENV #ifdef TEST_ENV

View File

@ -23,42 +23,39 @@
TEST(SerialKeyTests, decode_empty_returnEmptyString) TEST(SerialKeyTests, decode_empty_returnEmptyString)
{ {
SerialKey serial(""); std::string plainText = SerialKey::decode("");
std::string plainText = serial.decode("");
EXPECT_EQ(0, plainText.size()); EXPECT_EQ(0, plainText.size());
} }
TEST(SerialKeyTests, decode_invalidDigit_returnEmptyString) TEST(SerialKeyTests, decode_invalidDigit_returnEmptyString)
{ {
SerialKey serial(""); std::string plainText = SerialKey::decode("MOCKZ");
std::string plainText = serial.decode("MOCKZ");
EXPECT_EQ(0, plainText.size()); EXPECT_EQ(0, plainText.size());
} }
TEST(SerialKeyTests, decode_validSerial_returnPlainText) TEST(SerialKeyTests, decode_validSerial_returnPlainText)
{ {
SerialKey serial(""); std::string plainText = SerialKey::decode("53796E6572677920726F636B7321");
std::string plainText = serial.decode("53796E6572677920726F636B7321");
EXPECT_EQ("Synergy rocks!", plainText); EXPECT_EQ("Synergy rocks!", plainText);
} }
TEST(SerialKeyTests, parse_noParty_invalid) TEST(SerialKeyTests, parse_noParty_invalid)
{ {
SerialKey serial(""); SerialKey serial;
serial.parse("MOCK"); serial.parse("MOCK");
EXPECT_FALSE(serial.isValid(0)); EXPECT_FALSE(serial.isValid(0));
} }
TEST(SerialKeyTests, parse_invalidPartsLenghth_invalid) TEST(SerialKeyTests, parse_invalidPartsLenghth_invalid)
{ {
SerialKey serial(""); SerialKey serial;
serial.parse("{Synergy;Rocks}"); serial.parse("{Synergy;Rocks}");
EXPECT_FALSE(serial.isValid(0)); EXPECT_FALSE(serial.isValid(0));
} }
TEST(SerialKeyTests, parse_validV1Serial_valid) TEST(SerialKeyTests, parse_validV1Serial_valid)
{ {
SerialKey serial(""); SerialKey serial;
serial.parse("{v1;basic;Bob;1;email;company name;0;86400}"); serial.parse("{v1;basic;Bob;1;email;company name;0;86400}");
EXPECT_EQ(true, serial.isValid(0)); EXPECT_EQ(true, serial.isValid(0));
EXPECT_EQ(kBasic, serial.edition()); EXPECT_EQ(kBasic, serial.edition());
@ -69,7 +66,7 @@ TEST(SerialKeyTests, parse_validV1Serial_valid)
TEST(SerialKeyTests, parse_validV2Serial_valid) TEST(SerialKeyTests, parse_validV2Serial_valid)
{ {
SerialKey serial(""); SerialKey serial;
serial.parse("{v2;trial;pro;Bob;1;email;company name;0;86400}"); serial.parse("{v2;trial;pro;Bob;1;email;company name;0;86400}");
EXPECT_EQ(true, serial.isValid(0)); EXPECT_EQ(true, serial.isValid(0));
EXPECT_EQ(kPro, serial.edition()); EXPECT_EQ(kPro, serial.edition());