Skip to content

Commit

Permalink
test: Handle optional object members gracefully in Unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
AdityaKasar committed Feb 11, 2025
1 parent a0419b6 commit ca5722a
Show file tree
Hide file tree
Showing 4 changed files with 105 additions and 1 deletion.
58 changes: 57 additions & 1 deletion src/sdks/core/src/cpp/sdk/cpptest/unit/accessibilityTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,40 +92,68 @@ TEST_F(AccessibilityTest, ClosedCaptions)

if (styles.backgroundColor.has_value())
EXPECT_EQ(styles.backgroundColor.value(), expectedValues["styles"]["backgroundColor"]);
else
ADD_FAILURE() << "Expected styles.backgroundColor to have a value";

if (styles.backgroundOpacity.has_value())
EXPECT_EQ(styles.backgroundOpacity.value(), expectedValues["styles"]["backgroundOpacity"]);
else
ADD_FAILURE() << "Expected styles.backgroundOpacity to have a value";

if (styles.fontColor.has_value())
EXPECT_EQ(styles.fontColor.value(), expectedValues["styles"]["fontColor"]);
else
ADD_FAILURE() << "Expected styles.fontColor to have a value";

if (styles.fontEdge.has_value())
EXPECT_EQ(fontEdgeToString(styles.fontEdge.value()), expectedValues["styles"]["fontEdge"]);
else
ADD_FAILURE() << "Expected styles.fontEdge to have a value";

if (styles.fontEdgeColor.has_value())
EXPECT_EQ(styles.fontEdgeColor.value(), expectedValues["styles"]["fontEdgeColor"]);
else
ADD_FAILURE() << "Expected styles.fontEdgeColor to have a value";

if (styles.fontFamily.has_value())
EXPECT_EQ(fontFamilyToString(styles.fontFamily.value()), expectedValues["styles"]["fontFamily"]);
else
ADD_FAILURE() << "Expected styles.fontEdgeColor to have a value";

if (styles.fontOpacity.has_value())
EXPECT_EQ(styles.fontOpacity.value(), expectedValues["styles"]["fontOpacity"]);
else
ADD_FAILURE() << "Expected styles.fontOpacity to have a value";

if (styles.fontSize.has_value())
EXPECT_EQ(styles.fontSize.value(), expectedValues["styles"]["fontSize"]);
else
ADD_FAILURE() << "Expected styles.fontSize to have a value";

if (styles.textAlign.has_value())
EXPECT_EQ(styles.textAlign.value(), expectedValues["styles"]["textAlign"]);
else
ADD_FAILURE() << "Expected styles.textAlign to have a value";

if (styles.textAlignVertical.has_value())
EXPECT_EQ(styles.textAlignVertical.value(), expectedValues["styles"]["textAlignVertical"]);
else
ADD_FAILURE() << "Expected styles.textAlignVertical to have a value";

if (styles.windowColor.has_value())
EXPECT_EQ(styles.windowColor.value(), expectedValues["styles"]["windowColor"]);
else
ADD_FAILURE() << "Expected styles.windowColor to have a value";

if (styles.windowOpacity.has_value())
EXPECT_EQ(styles.windowOpacity.value(), expectedValues["styles"]["windowOpacity"]);
else
ADD_FAILURE() << "Expected styles.windowOpacity to have a value";
}
else
{
ADD_FAILURE() << "Expected closedCaptions.styles to have a value";
}

EXPECT_EQ(closedCaptions.preferredLanguages.value()[0], expectedValues["preferredLanguages"][0]);
EXPECT_EQ(closedCaptions.preferredLanguages.value()[1], expectedValues["preferredLanguages"][1]);
Expand All @@ -145,39 +173,67 @@ TEST_F(AccessibilityTest, ClosedCaptionsSettings)

if (styles.backgroundColor.has_value())
EXPECT_EQ(styles.backgroundColor.value(), expectedValues["styles"]["backgroundColor"]);
else
ADD_FAILURE() << "Expected styles.backgroundColor to have a value";

if (styles.backgroundOpacity.has_value())
EXPECT_EQ(styles.backgroundOpacity.value(), expectedValues["styles"]["backgroundOpacity"]);
else
ADD_FAILURE() << "Expected styles.backgroundOpacity to have a value";

if (styles.fontColor.has_value())
EXPECT_EQ(styles.fontColor.value(), expectedValues["styles"]["fontColor"]);
else
ADD_FAILURE() << "Expected styles.fontColor to have a value";

if (styles.fontEdge.has_value())
EXPECT_EQ(fontEdgeToString(styles.fontEdge.value()), expectedValues["styles"]["fontEdge"]);
else
ADD_FAILURE() << "Expected styles.fontEdge to have a value";

if (styles.fontEdgeColor.has_value())
EXPECT_EQ(styles.fontEdgeColor.value(), expectedValues["styles"]["fontEdgeColor"]);
else
ADD_FAILURE() << "Expected styles.fontEdgeColor to have a value";

if (styles.fontFamily.has_value())
EXPECT_EQ(fontFamilyToString(styles.fontFamily.value()), expectedValues["styles"]["fontFamily"]);
else
ADD_FAILURE() << "Expected styles.fontFamily to have a value";

if (styles.fontOpacity.has_value())
EXPECT_EQ(styles.fontOpacity.value(), expectedValues["styles"]["fontOpacity"]);
else
ADD_FAILURE() << "Expected styles.fontOpacity to have a value";

if (styles.fontSize.has_value())
EXPECT_EQ(styles.fontSize.value(), expectedValues["styles"]["fontSize"]);
else
ADD_FAILURE() << "Expected styles.fontSize to have a value";

if (styles.textAlign.has_value())
EXPECT_EQ(styles.textAlign.value(), expectedValues["styles"]["textAlign"]);
else
ADD_FAILURE() << "Expected styles.textAlign to have a value";

if (styles.textAlignVertical.has_value())
EXPECT_EQ(styles.textAlignVertical.value(), expectedValues["styles"]["textAlignVertical"]);
else
ADD_FAILURE() << "Expected styles.textAlignVertical to have a value";

if (styles.windowColor.has_value())
EXPECT_EQ(styles.windowColor.value(), expectedValues["styles"]["windowColor"]);
else
ADD_FAILURE() << "Expected styles.windowColor to have a value";

if (styles.windowOpacity.has_value())
EXPECT_EQ(styles.windowOpacity.value(), expectedValues["styles"]["windowOpacity"]);
else
ADD_FAILURE() << "Expected styles.windowOpacity to have a value";
}
else
{
ADD_FAILURE() << "Expected closedCaptionSettings.styles to have a value";
}

EXPECT_EQ(closedCaptionSettings.preferredLanguages.value()[0], expectedValues["preferredLanguages"][0]);
Expand Down Expand Up @@ -311,4 +367,4 @@ TEST_F(AccessibilityTest, unsubscribeOnAudioDescriptionSettingsChanged)
Firebolt::IFireboltAccessor::Instance().AccessibilityInterface().unsubscribe(audioDescriptionSettings, &error);
std::cout << " error: " << static_cast<int>(error) << std::endl;
EXPECT_EQ(error, Firebolt::Error::None);
}
}
4 changes: 4 additions & 0 deletions src/sdks/core/src/cpp/sdk/cpptest/unit/advertisingTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,13 @@ TEST_F(AdvertisingTest, Policy)

if (adPolicy.limitAdTracking.has_value())
EXPECT_EQ(adPolicy.limitAdTracking, expectedValues["limitAdTracking"]);
else
ADD_FAILURE() << "Expected adPolicy.limitAdTracking to have a value";

if (adPolicy.skipRestriction.has_value())
EXPECT_EQ(skipRestrictionToString(adPolicy.skipRestriction.value()), expectedValues["skipRestriction"]);
else
ADD_FAILURE() << "Expected adPolicy.skipRestriction to have a value";
}

// Helper function to convert JSON value to AdvertisingIdResultLmt enum
Expand Down
12 changes: 12 additions & 0 deletions src/sdks/manage/src/cpp/sdk/cpptest/unit/userGrantTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,25 @@ std::string stringifyGrantInfo(const std::vector<GrantInfo> &grants)
{
result += "\"title\":\"" + grant.app.value().title.value() + "\"";
}
else
{
ADD_FAILURE() << "Expected grant.app.title to have a value";
}
result += "},";
}
else
{
ADD_FAILURE() << "Expected grant.app to have a value";
}
result += "\"capability\":\"" + std::string(grant.capability) + "\",";
if (grant.expires.has_value())
{
result += "\"expires\":\"" + grant.expires.value() + "\",";
}
else
{
ADD_FAILURE() << "Expected grant.expires to have a value";
}
result += "\"lifespan\":\"" + grantInfoLifespanToString(grant.lifespan) + "\",";
result += "\"role\":\"" + roleToString(grant.role) + "\",";
result += "\"state\":\"" + grantStateToString(grant.state) + "\"";
Expand Down
32 changes: 32 additions & 0 deletions src/sdks/manage/src/cpp/sdk/cpptest/unit/wifiTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,19 @@ TEST_F(WifiTest, connect)
{
EXPECT_EQ(wifiSecurityModeToString(connectedWifi.securityMode.value()), expectedValues["security"]) << "Security mode mismatch";
}
else
{
ADD_FAILURE() << "Expected connectedWifi.securityMode to have a value";
}
EXPECT_EQ(connectedWifi.signalStrength, expectedValues["signalStrength"]) << "signalStrength mismatch";
if (connectedWifi.frequency.has_value())
{
EXPECT_EQ(connectedWifi.frequency, expectedValues["frequency"].get<float>()) << "frequency mismatch";
}
else
{
ADD_FAILURE() << "Expected connectedWifi.frequency to have a value";
}
}

TEST_F(WifiTest, disconnect)
Expand Down Expand Up @@ -122,24 +130,40 @@ TEST_F(WifiTest, scan)

apl_string += "\"frequency\":" + s.substr(0, pos + 2) + ",";
}
{
ADD_FAILURE() << "Expected ap.frequency to have a value";
}
if (ap.securityMode.has_value())
{
apl_string += "\"security\":\"" + wifiSecurityModeToString(ap.securityMode.value()) + "\",";
}
{
ADD_FAILURE() << "Expected ap.securityMode to have a value";
}
if (ap.signalStrength.has_value())
{
apl_string += "\"signalStrength\":" + std::to_string(ap.signalStrength.value()) + ",";
}
{
ADD_FAILURE() << "Expected ap.signalStrength to have a value";
}
if (ap.ssid.has_value())
{
apl_string += "\"ssid\":\"" + ap.ssid.value() + "\",";
}
{
ADD_FAILURE() << "Expected ap.ssid to have a value";
}

apl_string.pop_back(); // Remove the last comma
apl_string += "},";
}
apl_string.pop_back(); // Remove the last comma
}
else
{
ADD_FAILURE() << "Expected apl.list to have a value";
}
apl_string += "]}";

EXPECT_EQ(error, Firebolt::Error::None) << "Error on calling WifiInterface.scan() method";
Expand All @@ -159,9 +183,17 @@ TEST_F(WifiTest, wps)
{
EXPECT_EQ(wifiSecurityModeToString(connectedWifi.securityMode.value()), expectedValues["security"]) << "Security mode mismatch";
}
else
{
ADD_FAILURE() << "Expected connectedWifi.securityMode to have a value";
}
EXPECT_EQ(connectedWifi.signalStrength, expectedValues["signalStrength"]) << "signalStrength mismatch";
if (connectedWifi.frequency.has_value())
{
EXPECT_EQ(connectedWifi.frequency, expectedValues["frequency"].get<float>()) << "frequency mismatch";
}
else
{
ADD_FAILURE() << "Expected connectedWifi.frequency to have a value";
}
}

0 comments on commit ca5722a

Please sign in to comment.