public void TestSessions()
{
LogConfig.SetupLogging(logDelegate: msg => System.Diagnostics.Debug.WriteLine(msg),
logLevel: LogLevel.Info);
// adjust the session intervals for testing
AdjustFactory.SetSessionInterval(new TimeSpan(0,0,0,0,4000));
AdjustFactory.SetSubsessionInterval(new TimeSpan(0,0,0,0,1000));
// create the config to start the session
AdjustConfig config = new AdjustConfig("123456789012", AdjustConfig.EnvironmentSandbox);
// start activity handler with config
ActivityHandler activityHandler = GetActivityHandler(config);
DeviceUtil.Sleep(3000);
// test init values
InitTests("sandbox", "Info", false);
// test first session start
CheckFirstSession();
// trigger a new sub session session
activityHandler.TrackSubsessionStart();
// and end it
activityHandler.TrackSubsessionEnd();
DeviceUtil.Sleep(5000);
// test the new sub session
CheckSubsession(
sessionCount: 1,
subsessionCount: 2,
timerAlreadyStarted: true);
// test the end of the subsession
CheckEndSession();
// trigger a new session
activityHandler.TrackSubsessionStart();
DeviceUtil.Sleep(1000);
// new session
CheckNewSession(
paused:false,
sessionCount: 2,
eventCount: 0,
timerAlreadyStarted: true);
// end the session
activityHandler.TrackSubsessionEnd();
DeviceUtil.Sleep(1000);
// 2 session packages
Assert.AreEqual(2, MockPackageHandler.PackageQueue.Count);
ActivityPackage firstSessionActivityPackage = MockPackageHandler.PackageQueue[0];
// create activity package test
TestActivityPackage testFirstSessionActivityPackage = new TestActivityPackage(firstSessionActivityPackage);
// test first session
testFirstSessionActivityPackage.TestSessionPackage(1);
// get second session package
ActivityPackage secondSessionActivityPackage = MockPackageHandler.PackageQueue[1];
// create second session test package
TestActivityPackage testSecondSessionActivityPackage = new TestActivityPackage(secondSessionActivityPackage);
// check if it saved the second subsession in the new package
testSecondSessionActivityPackage.SubsessionCount = 2;
// test second session
testSecondSessionActivityPackage.TestSessionPackage(2);
}