@@ -18,6 +18,8 @@ class TestLogSessionDataProvider : public LogSessionDataProvider
18
18
};
19
19
20
20
const char * const PathToTestSesFile = " " ;
21
+ const char * const PathToNonEmptyTestSesFile = " sesfile" ;
22
+
21
23
std::string sessionSDKUid;
22
24
uint64_t sessionFirstTimeLaunch;
23
25
@@ -30,7 +32,6 @@ TEST(LogSessionDataTests, parse_EmptyString_ReturnsFalse)
30
32
31
33
TEST (LogSessionDataTests, parse_OneLine_ReturnsFalse)
32
34
{
33
-
34
35
TestLogSessionDataProvider logSessionDataProvider (PathToTestSesFile);
35
36
ASSERT_FALSE (logSessionDataProvider.parse (std::string {" foo" }, sessionFirstTimeLaunch, sessionSDKUid));
36
37
}
@@ -54,9 +55,32 @@ TEST(LogSessionDataTests, parse_TwoLinesFirstLaunchTooLarge_ReturnsFalse)
54
55
sessionFirstTimeLaunch, sessionSDKUid));
55
56
}
56
57
58
+ TEST (LogSessionDataTests, parse_MissingNewLineAtEnd_ReturnsFalse)
59
+ {
60
+ TestLogSessionDataProvider logSessionDataProvider (PathToTestSesFile);
61
+ ASSERT_FALSE (logSessionDataProvider.parse (std::string { " 1234567890\n bar" }, sessionFirstTimeLaunch, sessionSDKUid));
62
+ }
63
+
57
64
TEST (LogSessionDataTests, parse_ValidInput_ReturnsTrue)
58
65
{
59
66
TestLogSessionDataProvider logSessionDataProvider (PathToTestSesFile);
60
- ASSERT_TRUE (logSessionDataProvider.parse (std::string { " 1234567890\n bar" }, sessionFirstTimeLaunch, sessionSDKUid));
67
+ ASSERT_TRUE (logSessionDataProvider.parse (std::string { " 1234567890\n bar\n " }, sessionFirstTimeLaunch, sessionSDKUid));
68
+ ASSERT_EQ (sessionFirstTimeLaunch, (uint64_t )1234567890 );
69
+ ASSERT_EQ (sessionSDKUid, " bar" );
70
+ }
71
+
72
+ TEST (LogSessionDataTests, getLogSessionData_ValidInput_SessionDataPersists)
73
+ {
74
+ TestLogSessionDataProvider logSessionDataProvider1 (PathToNonEmptyTestSesFile);
75
+ logSessionDataProvider1.CreateLogSessionData ();
76
+ auto logSessionData1 = logSessionDataProvider1.GetLogSessionData ();
77
+
78
+ // Create another provider instance and validate session data is not re-generated
79
+ TestLogSessionDataProvider logSessionDataProvider2 (PathToNonEmptyTestSesFile);
80
+ logSessionDataProvider2.CreateLogSessionData ();
81
+ auto logSessionData2 = logSessionDataProvider2.GetLogSessionData ();
82
+
83
+ ASSERT_EQ (logSessionData1->getSessionFirstTime (), logSessionData2->getSessionFirstTime ());
84
+ ASSERT_EQ (logSessionData1->getSessionSDKUid (), logSessionData2->getSessionSDKUid ());
61
85
}
62
86
0 commit comments