public void Upgrade_SamePersonInMultipleSettings_NoDuplicates() { var settings = new SirenOfShameSettingsFake(); settings.CiEntryPointSettings.Add(new CiEntryPointSetting { BuildDefinitionSettings = new List <BuildDefinitionSetting> { new BuildDefinitionSetting { People = new List <string> { "Bob", } }, new BuildDefinitionSetting { People = new List <string> { "Bob", } } } }); settings.DoUpgrade(); Assert.AreEqual(1, settings.People.Count); }
public void ExportNewBuilds_SecondExportGetsNewAchievements() { var settings = new SirenOfShameSettingsFake { SosOnlineHighWaterMark = 633979044610000000, MyRawName = "CurrentUser", People = new List <PersonSetting> { new PersonSetting { RawName = "CurrentUser", Achievements = new List <AchievementSetting> { new AchievementSetting { AchievementId = 1, DateAchieved = new DateTime(2010, 1, 1, 1, 1, 1) }, new AchievementSetting { AchievementId = 2, DateAchieved = new DateTime(2010, 1, 1, 1, 1, 2) } } } } }; Assert.AreEqual("2,633979044620000000", settings.ExportNewAchievements()); }
public void Upgrade_ThreePeopleTwoAvatarImages_LastPersonsAvatarIdLoopsBackToZero() { var settings = new SirenOfShameSettingsFake { Version = null, People = new List <PersonSetting> { new PersonSetting { RawName = "1" }, new PersonSetting { RawName = "2" }, new PersonSetting { RawName = "3" }, } }; settings.Rules.Add(new Rule { TriggerType = TriggerType.BuildTriggered }); new Upgrade5To6(2).Upgrade(settings); Assert.AreEqual(3, settings.People.Count); Assert.AreEqual(0, settings.People[0].AvatarId); Assert.AreEqual(1, settings.People[1].AvatarId); Assert.AreEqual(0, settings.People[2].AvatarId); }
public void Upgrade_PeopleInSettings_AddedToPeopleInBase() { var settings = new SirenOfShameSettingsFake(); settings.CiEntryPointSettings.Add(new CiEntryPointSetting { BuildDefinitionSettings = new List <BuildDefinitionSetting> { new BuildDefinitionSetting { People = new List <string> { "Bob", } } } }); settings.DoUpgrade(); Assert.AreEqual(1, settings.People.Count); PersonSetting personSetting = settings.People.First(); Assert.AreEqual("Bob", personSetting.RawName); Assert.AreEqual("Bob", personSetting.DisplayName); Assert.AreEqual(0, personSetting.FailedBuilds); Assert.AreEqual(0, personSetting.TotalBuilds); }
public void IsGettingStarted_NoServerNoSosOnline() { SirenOfShameSettingsFake settings = new SirenOfShameSettingsFake(); settings.SosOnlineUsername = null; Assert.IsTrue(settings.IsGettingStarted()); }
public void Upgrade_EmptyPeople_Removed() { var settings = new SirenOfShameSettingsFake(); settings.CiEntryPointSettings.Add(new CiEntryPointSetting { BuildDefinitionSettings = new List <BuildDefinitionSetting> { new BuildDefinitionSetting { People = new List <string> { "Bob", "" } } } }); settings.DoUpgrade(); var allPeople = settings.CiEntryPointSettings .SelectMany(i => i.BuildDefinitionSettings) .SelectMany(i => i.People); Assert.IsFalse(allPeople.Any(p => string.IsNullOrEmpty(p))); }
public void IsGettingStarted_OneServerAndAlwaysOffline() { SirenOfShameSettingsFake settings = new SirenOfShameSettingsFake(); settings.SosOnlineAlwaysOffline = true; settings.CiEntryPointSettings.Add(new CiEntryPointSetting()); Assert.IsFalse(settings.IsGettingStarted()); }
public void IsGettingStarted_OneServerAndIsSosOnline() { SirenOfShameSettingsFake settings = new SirenOfShameSettingsFake(); settings.SosOnlineUsername = "******"; settings.CiEntryPointSettings.Add(new CiEntryPointSetting()); Assert.IsFalse(settings.IsGettingStarted()); }
public void Upgrade_NullVersion_UpgradedToMostRecent() { var settings = new SirenOfShameSettingsFake { Version = null }; settings.DoUpgrade(); Assert.AreEqual(7, settings.Version); }
public void Upgrade_FutureVersion_NotDowngraded() { var settings = new SirenOfShameSettingsFake { Version = int.MaxValue }; settings.DoUpgrade(); Assert.AreEqual(int.MaxValue, settings.Version); }
public void Upgrade_BuildTriggeredRule_WindowsAudioSetToPlunk() { var settings = new SirenOfShameSettingsFake { Version = null }; settings.Rules.Add(new Rule { TriggerType = TriggerType.BuildTriggered }); new Upgrade2To3().Upgrade(settings); Assert.AreEqual(1, settings.Rules.Count); Assert.AreEqual("SirenOfShame.Resources.Audio-Plunk.wav", settings.Rules[0].WindowsAudioLocation); }
public void Upgrade_SubsequentBuildFailedRule_WindowsAudioSetToSadTrombone() { var settings = new SirenOfShameSettingsFake { Version = null }; settings.Rules.Add(new Rule { TriggerType = TriggerType.SubsequentFailedBuild }); new Upgrade2To3().Upgrade(settings); Assert.AreEqual(1, settings.Rules.Count); Assert.AreEqual("SirenOfShame.Resources.Audio-Boo-Hiss.wav", settings.Rules[0].WindowsAudioLocation); }
public void FindAddUser_SecondUser_AvatarIdIsTwo() { var settings = new SirenOfShameSettingsFake { People = new List <PersonSetting> { new PersonSetting { RawName = "Bob" } } }; settings.FindAddPerson("Sam"); Assert.AreEqual(2, settings.People.Count); Assert.AreEqual(1, settings.People[1].AvatarId); }
public void GetUsersContainedInBuildsAsDto_BuildListDoesNotContainPerson_PersonIsNotReturned() { var settings = new SirenOfShameSettingsFake(); settings.People.Add(new PersonSetting { RawName = "Bob" }); IList <BuildStatus> changedBuildStatuses = new List <BuildStatus> { new BuildStatus { RequestedBy = "Sam" } }; var results = settings.GetUsersContainedInBuildsAsDto(changedBuildStatuses); Assert.AreEqual(0, results.Count); }
public void Upgrade_AllPeopleNotHidden() { var settings = new SirenOfShameSettingsFake { Version = null }; settings.People.Add(new PersonSetting { DisplayName = "Bob Thomas", FailedBuilds = 3, RawName = "domain\\bthomas", TotalBuilds = 100 }); new Upgrade1To2().Upgrade(settings); Assert.AreEqual(1, settings.People.Count); Assert.AreEqual(false, settings.People[0].Hidden); }
public void GetUsersContainedInBuildsAsDto_BuildListContainsHiddenPerson_PersonStillReturned() { var settings = new SirenOfShameSettingsFake(); settings.People.Add(new PersonSetting { RawName = "Bob", Hidden = true }); IList <BuildStatus> changedBuildStatuses = new List <BuildStatus> { new BuildStatus { RequestedBy = "Bob" } }; var results = settings.GetUsersContainedInBuildsAsDto(changedBuildStatuses); Assert.AreEqual(1, results.Count); Assert.AreEqual("Bob", results[0].RawName); }
public void ExportNewAchievements_InitialExportWithNoAchievements_Null() { var settings = new SirenOfShameSettingsFake { SosOnlineHighWaterMark = null, MyRawName = "CurrentUser", People = new List <PersonSetting> { new PersonSetting { RawName = "CurrentUser", Achievements = new List <AchievementSetting>() } } }; Assert.IsNull(settings.ExportNewAchievements()); }
public void FindAddUser_ThirdUserWithTwoAvatars_NewUserAvatarIdLoopsToZero() { var settings = new SirenOfShameSettingsFake { People = new List <PersonSetting> { new PersonSetting { RawName = "Bob" }, new PersonSetting { RawName = "Sam" } } }; settings.FindAddPerson("Sally", 2); Assert.AreEqual(3, settings.People.Count); Assert.AreEqual(0, settings.People[2].AvatarId); }
public void Upgrade_BuildFailedRule_WindowsAudioSetToSadTrombone() { var settings = new SirenOfShameSettingsFake { Version = null }; settings.Rules.Add(new Rule { TriggerType = TriggerType.BuildFailed }); settings.Rules.Add(new Rule { TriggerType = TriggerType.InitialFailedBuild }); new Upgrade2To3().Upgrade(settings); Assert.AreEqual(2, settings.Rules.Count); Assert.IsTrue(settings.Rules.All(i => i.WindowsAudioLocation == "SirenOfShame.Resources.Audio-Sad-Trombone.wav")); }
public void TryToGetAndSendNewSosOnlineAlerts_HaveNeverCheckedForAlertsButSettingsSayNeverDownload_DoNotSendAlertToUi() { var sosOnlineService = new SosOnlineServiceFake(); var settings = new SirenOfShameSettingsFake(); settings.UpdateLocation = UpdateLocation.Never; settings.LastCheckedForAlert = null; NewAlertEventArgs newAlertEventArgs = null; sosOnlineService.TryToGetAndSendNewSosOnlineAlerts(settings, new DateTime(2010, 1, 1), alert => { newAlertEventArgs = alert; }); sosOnlineService.FakeWebClient.InvokeDownloadStringCompleted(@"56 http://www.google.com Hello World 633979872000000000"); Assert.IsNull(newAlertEventArgs); }
public void TryToGetAndSendNewSosOnlineAlerts_LastCheckedForNewAlertsOneSecondAgo_DoNotSendAlertToUi() { var sosOnlineService = new SosOnlineServiceFake(); var settings = new SirenOfShameSettingsFake(); var now = new DateTime(2010, 2, 2, 2, 2, 1); settings.LastCheckedForAlert = new DateTime(2010, 2, 2, 2, 2, 2); NewAlertEventArgs newAlertEventArgs = null; sosOnlineService.TryToGetAndSendNewSosOnlineAlerts(settings, now, alert => { newAlertEventArgs = alert; }); sosOnlineService.FakeWebClient.InvokeDownloadStringCompleted(@"56 http://www.google.com Hello World 633979872000000000"); Assert.IsNull(newAlertEventArgs); }
public void TryToGetAndSendNewSosOnlineAlerts_HaveNeverCheckedForAlerts_SendAlertToUi() { var sosOnlineService = new SosOnlineServiceFake(); var settings = new SirenOfShameSettingsFake(); settings.LastCheckedForAlert = null; NewAlertEventArgs newAlertEventArgs = null; sosOnlineService.TryToGetAndSendNewSosOnlineAlerts(settings, new DateTime(2010, 1, 1), alert => { newAlertEventArgs = alert; }); sosOnlineService.FakeWebClient.InvokeDownloadStringCompleted(@"56 http://www.google.com Hello World 633979872000000000"); Assert.IsNotNull(newAlertEventArgs, "Expected WebClient.DownloadStringAsync to be called, but it never was"); Assert.AreEqual("Hello World", newAlertEventArgs.Message); Assert.AreEqual("http://www.google.com", newAlertEventArgs.Url); Assert.AreEqual(new DateTime(2010, 1, 2), newAlertEventArgs.AlertDate); }
public void ExportNewBuilds_InitialExportWithOneSuccessfulBuildBySomeoneElse_Null() { var settings = new SirenOfShameSettingsFake { SosOnlineHighWaterMark = null, MyRawName = "CurrentUser", People = new List <PersonSetting> { new PersonSetting { RawName = "SomeoneElse", Achievements = new List <AchievementSetting> { new AchievementSetting { AchievementId = 1, DateAchieved = new DateTime(2010, 1, 1, 1, 1, 2) } } } } }; Assert.AreEqual(null, settings.ExportNewAchievements()); }
public void ExportNewAchievements_InitialExportWithOneNewAchievementByCurrentUser_Exports() { var settings = new SirenOfShameSettingsFake { SosOnlineHighWaterMark = null, MyRawName = "CurrentUser", People = new List <PersonSetting> { new PersonSetting { RawName = "CurrentUser", Achievements = new List <AchievementSetting> { new AchievementSetting { AchievementId = 1, DateAchieved = new DateTime(2010, 1, 1, 1, 1, 2) } } } } }; Assert.AreEqual("1,633979044620000000", settings.ExportNewAchievements()); }