Ejemplo n.º 1
0
        public void HooksFish()
        {
            var fisher = FisherData.First();
            var result = System.HookFish(fisher);

            Assert.IsTrue(result);
            Assert.IsNotNull(fisher.Hooked);
        }
Ejemplo n.º 2
0
        public void CatchFishDoesNothingIfNoFishHooked()
        {
            var fisher = FisherData.First();

            fisher.Hooked = null;
            var catchData = System.CatchFish(fisher);

            Assert.IsNull(catchData);
        }
Ejemplo n.º 3
0
        public void CastsLine()
        {
            var fisher = FisherData.First();

            fisher.IsFishing = false;
            System.Cast(fisher.UserId);
            Assert.IsTrue(fisher.IsFishing);
            Assert.IsTrue(fisher.HookedTime >= DateTime.Now.AddSeconds(AppSettings.FishingCastMinimum));
            Assert.IsTrue(fisher.HookedTime <= DateTime.Now.AddSeconds(AppSettings.FishingCastMaximum));
        }
Ejemplo n.º 4
0
        public void CatchesFish()
        {
            var fisher = FisherData.First();

            fisher.Hooked = FishData[0];
            var catchData = System.CatchFish(fisher);

            Assert.IsNotNull(catchData);
            Assert.AreEqual(FishData[0].Id, catchData.Fish.Id);
            Assert.AreEqual(fisher.UserId, catchData.UserId);
        }
Ejemplo n.º 5
0
        public void CastSetsHookTimeWithTournamentSettingsWhileTournamentActive()
        {
            var fisher = FisherData.First();

            fisher.IsFishing = false;
            System.Tournament.StartTournament();
            System.Cast(fisher.UserId);
            Assert.IsTrue(fisher.IsFishing);
            Assert.IsTrue(fisher.HookedTime >= DateTime.Now.AddSeconds(AppSettings.FishingTournamentCastMinimum));
            Assert.IsTrue(fisher.HookedTime <= DateTime.Now.AddSeconds(AppSettings.FishingTournamentCastMaximum));
        }
Ejemplo n.º 6
0
        public void UnhooksFish()
        {
            var fisher = FisherData.First();

            fisher.IsFishing  = true;
            fisher.Hooked     = new Fish();
            fisher.HookedTime = DateTime.Now;
            System.UnhookFish(fisher);
            Assert.IsFalse(fisher.IsFishing);
            Assert.IsNull(fisher.Hooked);
            Assert.IsNull(fisher.HookedTime);
        }
Ejemplo n.º 7
0
        public void ProcessHooksFish()
        {
            var fisher = FisherData.First();

            fisher.IsFishing  = true;
            fisher.HookedTime = DateTime.Now;
            var callbackMock = new Mock <FisherEventHandler>();

            System.FishHooked += callbackMock.Object;
            System.Process(true);
            Assert.IsNotNull(fisher.Hooked);
            callbackMock.Verify(x => x(fisher), Times.Once);
        }
Ejemplo n.º 8
0
        public void ProcessReleasesFish()
        {
            var fisher = FisherData.First();

            fisher.IsFishing  = true;
            fisher.HookedTime = DateTime.Now.AddSeconds(-AppSettings.FishingHookLength);
            fisher.Hooked     = FishData[0];
            var callbackMock = new Mock <FisherEventHandler>();

            System.FishGotAway += callbackMock.Object;
            System.Process(true);
            Assert.IsFalse(fisher.IsFishing);
            Assert.IsNull(fisher.Hooked);
            Assert.IsNull(fisher.HookedTime);
            callbackMock.Verify(x => x(fisher), Times.Once);
        }
Ejemplo n.º 9
0
        public void CatchFishUpdatesLeaderboardWhileTournamentActive()
        {
            var fisher = FisherData.First();

            fisher.Hooked = FishData[0];
            var callbackMock = new Mock <LeaderboardEventHandler>();

            System.NewGlobalRecord += callbackMock.Object;
            LeaderboardMock.Data.Clear();
            System.Tournament.StartTournament();
            var catchData = System.CatchFish(fisher);

            Assert.IsNotNull(catchData);
            Assert.AreEqual(1, LeaderboardMock.Data.Count);
            callbackMock.Verify(x => x(It.IsAny <Catch>()), Times.Once);
        }
Ejemplo n.º 10
0
        public void UpdatesPersonalLeaderboardWithNewFishType()
        {
            var fisher = FisherData.First();

            fisher.Records.Clear();
            var catchData = new Catch()
            {
                Fish   = FishData[0],
                Weight = 100
            };
            var result = System.UpdatePersonalLeaderboard(fisher, catchData);

            Assert.IsTrue(result);
            Assert.AreEqual(1, fisher.Records.Count);
            Assert.AreEqual(catchData.Fish.Id, fisher.Records[0].Fish.Id);
        }
Ejemplo n.º 11
0
        public void UpdatePersonalLeaderboardReturnsFalseWhenCatchIsNotNewRecord()
        {
            var fisher = FisherData.First();

            fisher.Records.Clear();
            fisher.Records.Add(new Catch()
            {
                Fish   = FishData[0],
                Weight = 100
            });
            var catchData = new Catch()
            {
                Fish   = FishData[0],
                Weight = 10
            };
            var result = System.UpdatePersonalLeaderboard(fisher, catchData);

            Assert.IsFalse(result);
            Assert.AreEqual(1, fisher.Records.Count);
            Assert.AreNotEqual(catchData.Weight, fisher.Records[0].Weight);
        }
Ejemplo n.º 12
0
        public void HooksFishWithNormalRarityDistribution()
        {
            var fisher = FisherData.First();

            AppSettings.FishingUseNormalRarity = true;
            var rarities   = FishData.Select(x => x.Rarity).Distinct().ToArray();
            var sampleSize = 10000;
            var samples    = new List <Fish>();

            for (var i = 0; i < sampleSize; i++)
            {
                System.HookFish(fisher);
                samples.Add(fisher.Hooked);
            }
            var commonCount   = samples.Count(x => x.Rarity.Equals(rarities[0]));
            var uncommonCount = samples.Count(x => x.Rarity.Equals(rarities[1]));
            var rareCount     = samples.Count(x => x.Rarity.Equals(rarities[2]));

            Assert.IsTrue(commonCount >= sampleSize * 0.67 && commonCount <= sampleSize * 0.70);
            Assert.IsTrue(uncommonCount >= sampleSize * 0.25 && uncommonCount <= sampleSize * 0.28);
            Assert.IsTrue(rareCount > 0 && rareCount <= sampleSize * 0.05);
        }
Ejemplo n.º 13
0
        public void HooksFishWithWeightedRarityDistribution()
        {
            var fisher     = FisherData.First();
            var rarities   = FishData.Select(x => x.Rarity).Distinct().ToArray();
            var sampleSize = 10000;
            var samples    = new List <Fish>();

            for (var i = 0; i < sampleSize; i++)
            {
                System.HookFish(fisher);
                samples.Add(fisher.Hooked);
            }
            var weightTotal    = (float)rarities.Sum(x => x.Weight);
            var commonCount    = samples.Count(x => x.Rarity.Equals(rarities[0]));
            var uncommonCount  = samples.Count(x => x.Rarity.Equals(rarities[1]));
            var rareCount      = samples.Count(x => x.Rarity.Equals(rarities[2]));
            var commonWeight   = (float)rarities[0].Weight / weightTotal;
            var uncommonWeight = (float)rarities[1].Weight / weightTotal;
            var rareWeight     = (float)rarities[2].Weight / weightTotal;

            Assert.IsTrue(commonCount >= sampleSize * (commonWeight / 1.1) && commonCount <= sampleSize * (commonWeight * 1.1));
            Assert.IsTrue(uncommonCount >= sampleSize * (uncommonWeight / 1.1) && uncommonCount <= sampleSize * (uncommonWeight * 1.1));
            Assert.IsTrue(rareCount >= sampleSize * (rareWeight / 1.1) && rareCount <= sampleSize * (rareWeight * 1.1));
        }