Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        public void IsGettingStarted_NoServerNoSosOnline()
        {
            SirenOfShameSettingsFake settings = new SirenOfShameSettingsFake();

            settings.SosOnlineUsername = null;
            Assert.IsTrue(settings.IsGettingStarted());
        }
Beispiel #6
0
        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)));
        }
Beispiel #7
0
        public void IsGettingStarted_OneServerAndAlwaysOffline()
        {
            SirenOfShameSettingsFake settings = new SirenOfShameSettingsFake();

            settings.SosOnlineAlwaysOffline = true;
            settings.CiEntryPointSettings.Add(new CiEntryPointSetting());
            Assert.IsFalse(settings.IsGettingStarted());
        }
Beispiel #8
0
        public void IsGettingStarted_OneServerAndIsSosOnline()
        {
            SirenOfShameSettingsFake settings = new SirenOfShameSettingsFake();

            settings.SosOnlineUsername = "******";
            settings.CiEntryPointSettings.Add(new CiEntryPointSetting());
            Assert.IsFalse(settings.IsGettingStarted());
        }
Beispiel #9
0
        public void Upgrade_NullVersion_UpgradedToMostRecent()
        {
            var settings = new SirenOfShameSettingsFake
            {
                Version = null
            };

            settings.DoUpgrade();
            Assert.AreEqual(7, settings.Version);
        }
Beispiel #10
0
        public void Upgrade_FutureVersion_NotDowngraded()
        {
            var settings = new SirenOfShameSettingsFake
            {
                Version = int.MaxValue
            };

            settings.DoUpgrade();
            Assert.AreEqual(int.MaxValue, settings.Version);
        }
Beispiel #11
0
        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);
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        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);
        }
Beispiel #16
0
        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);
        }
Beispiel #17
0
        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());
        }
Beispiel #18
0
        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);
        }
Beispiel #19
0
        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"));
        }
Beispiel #20
0
        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);
        }
Beispiel #21
0
        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);
        }
Beispiel #22
0
        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);
        }
Beispiel #23
0
        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());
        }
Beispiel #24
0
        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());
        }