public void First_Launch_After_Build_Downgrade() { VersionTracking.Track(); Preferences.Set(versionsKey, string.Join("|", new string[] { currentVersion }), sharedName); Preferences.Set(buildsKey, string.Join("|", new string[] { currentBuild, "10", "20" }), sharedName); VersionTracking.InitVersionTracking(); output.WriteLine(VersionTracking.GetStatus()); Assert.Equal(currentBuild, VersionTracking.CurrentBuild); Assert.Equal("20", VersionTracking.PreviousBuild); Assert.Equal("10", VersionTracking.FirstInstalledBuild); Assert.False(VersionTracking.IsFirstLaunchEver); Assert.False(VersionTracking.IsFirstLaunchForCurrentVersion); Assert.True(VersionTracking.IsFirstLaunchForCurrentBuild); VersionTracking.InitVersionTracking(); Assert.Equal(currentBuild, VersionTracking.CurrentBuild); Assert.Equal("20", VersionTracking.PreviousBuild); Assert.Equal("10", VersionTracking.FirstInstalledBuild); Assert.False(VersionTracking.IsFirstLaunchEver); Assert.False(VersionTracking.IsFirstLaunchForCurrentVersion); Assert.False(VersionTracking.IsFirstLaunchForCurrentBuild); }