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 DeletesFish()
        {
            var fisher = FisherData.FirstOrDefault(x => x.UserId.Equals("00"));
            var fish   = fisher.Records[0];

            System.DeleteFish(fisher, fish);
            Assert.IsFalse(fisher.Records.Any(x => x.Fish.Id.Equals(fish.Fish.Id)));
        }
Ejemplo n.º 3
0
        public void CastCreatesNewFisherIfNoneExistsWithMatchingUserId()
        {
            var newId = "NewId";

            System.Cast(newId);
            var newFisher = FisherData.FirstOrDefault(x => x.UserId.Equals(newId));

            Assert.IsNotNull(newFisher);
        }
Ejemplo n.º 4
0
        public void CatchFishDoesNothingIfNoFishHooked()
        {
            var fisher = FisherData.First();

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

            Assert.IsNull(catchData);
        }
Ejemplo n.º 5
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.º 6
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.º 7
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.º 8
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.º 9
0
        public void GloatFailsWithInsufficientCoins()
        {
            var fisher    = FisherData.FirstOrDefault(x => x.UserId == "01");
            var response  = Module.Gloat("1", fisher.UserId);
            var responses = response.Responses;

            Assert.IsTrue(response.Processed);
            Assert.IsNull(response.Errors);
            Assert.IsNull(response.Messages);
            Assert.AreEqual(1, responses.Count);
            Assert.IsTrue(responses[0].Contains("coins"));
        }
Ejemplo n.º 10
0
        public void GloatFailsWithInvalidFish()
        {
            var fisher    = FisherData.FirstOrDefault(x => x.UserId == "00");
            var response  = Module.Gloat("", fisher.UserId);
            var responses = response.Responses;

            Assert.IsTrue(response.Processed);
            Assert.IsNull(response.Errors);
            Assert.IsNull(response.Messages);
            Assert.AreEqual(1, responses.Count);
            Assert.IsTrue(responses[0].Contains("invalid", StringComparison.OrdinalIgnoreCase));
        }
Ejemplo n.º 11
0
        public void CastsLine()
        {
            var fisher = FisherData.FirstOrDefault(x => x.UserId == "00");

            fisher.IsFishing = false;
            var response  = Module.Cast("", fisher.UserId);
            var responses = response.Responses;

            Assert.IsTrue(response.Processed);
            Assert.IsNull(response.Errors);
            Assert.AreEqual(1, responses.Count);
            Assert.IsTrue(fisher.IsFishing);
        }
Ejemplo n.º 12
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.º 13
0
        public void ReleasesSpecificFish()
        {
            var fisher    = FisherData.FirstOrDefault(x => x.UserId == "00");
            var fish      = fisher.Records[0];
            var response  = Module.ReleaseFish("1", fisher.UserId);
            var responses = response.Responses;

            Assert.IsTrue(response.Processed);
            Assert.IsNull(response.Errors);
            Assert.AreEqual(1, responses.Count);
            Assert.IsTrue(responses[0].Contains(fish.Fish.Name));
            Assert.IsFalse(fisher.Records.Any(x => x.Fish.Id.Equals(fish.Fish.Id)));
        }
Ejemplo n.º 14
0
        public void PlayerLeaderboardUserHasNoFishRecords()
        {
            var noRecordsFisher = FisherData.FirstOrDefault(x => x.Records.Count == 0);
            var response        = Module.PlayerLeaderboard(null, noRecordsFisher.UserId);
            var responses       = response.Responses;

            Assert.IsTrue(response.Processed);
            Assert.IsNull(response.Errors);
            Assert.AreEqual(1, responses.Count);
            foreach (var fish in FishData)
            {
                Assert.IsFalse(responses[0].Contains(fish.Name));
            }
        }
Ejemplo n.º 15
0
        public void GloatFailsWithNoFish()
        {
            var fisher = FisherData.FirstOrDefault(x => x.UserId == "00");

            fisher.Records.Clear();
            var response  = Module.Gloat("1", fisher.UserId);
            var responses = response.Responses;

            Assert.IsTrue(response.Processed);
            Assert.IsNull(response.Errors);
            Assert.IsNull(response.Messages);
            Assert.AreEqual(1, responses.Count);
            Assert.IsTrue(responses[0].Contains("!cast"));
        }
Ejemplo n.º 16
0
        public void CastLineFailsFailsIfLineAlreadyCast()
        {
            var fisher = FisherData.FirstOrDefault(x => x.UserId == "00");

            fisher.IsFishing = true;
            var response  = Module.Cast("", fisher.UserId);
            var responses = response.Responses;

            Assert.IsTrue(response.Processed);
            Assert.IsNull(response.Errors);
            Assert.AreEqual(1, responses.Count);
            Assert.IsTrue(responses[0].Contains("already"));
            Assert.IsFalse(responses[0].Contains("!catch"));
        }
Ejemplo n.º 17
0
        public void PlayerLeaderboardProvidesSpecificFishDetails()
        {
            var fisher    = FisherData.FirstOrDefault(x => x.UserId == "00");
            var fish      = fisher.Records[0];
            var response  = Module.PlayerLeaderboard("1", fisher.UserId);
            var responses = response.Responses;

            Assert.IsTrue(response.Processed);
            Assert.IsNull(response.Errors);
            Assert.IsTrue(responses.Any(x => x.Contains(fish.Fish.Name)));
            Assert.IsTrue(responses.Any(x => x.Contains(fish.Length.ToString())));
            Assert.IsTrue(responses.Any(x => x.Contains(fish.Weight.ToString())));
            Assert.IsTrue(responses.Any(x => x.Contains(fish.Fish.SizeCategory.Name)));
            Assert.IsTrue(responses.Any(x => x.Contains(fish.Fish.FlavorText)));
        }
Ejemplo n.º 18
0
        public void PushesNotificationOnFishHooked()
        {
            var handlerMock = new Mock <PushNotificationHandler>();

            Module.PushNotification += handlerMock.Object;
            var fisher = FisherData.FirstOrDefault(x => x.UserId.Equals("00"));

            fisher.IsFishing  = true;
            fisher.HookedTime = DateTime.Now;
            System.Process(true);
            handlerMock.Verify(x => x(It.IsAny <string>(), It.IsAny <CommandResult>()), Times.Once);
            var result = handlerMock.Invocations[0].Arguments[1] as CommandResult;

            Assert.IsTrue(result.Responses.Any(x => x.Contains("!catch")));
        }
Ejemplo n.º 19
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.º 20
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.º 21
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.º 22
0
        public void Gloats()
        {
            var fisher    = FisherData.FirstOrDefault(x => x.UserId == "00");
            var response  = Module.Gloat("1", fisher.UserId);
            var responses = response.Responses;
            var messages  = response.Messages;

            Assert.IsTrue(response.Processed);
            Assert.IsNull(response.Errors);
            Assert.AreEqual(1, responses.Count);
            Assert.AreEqual(1, messages.Count);
            Assert.IsTrue(responses[0].Contains(System.GloatCost.ToString()));
            Assert.IsTrue(responses[0].Contains(fisher.Records[0].Fish.Name));
            Assert.IsTrue(messages[0].Contains(UserLookup.GetUsername(fisher.UserId)));
            Assert.IsTrue(messages[0].Contains(fisher.Records[0].Fish.Name));
            Assert.IsTrue(messages[0].Contains(fisher.Records[0].Length.ToString()));
            Assert.IsTrue(messages[0].Contains(fisher.Records[0].Weight.ToString()));
        }
Ejemplo n.º 23
0
        public void CatchFishFailsIfLineNotCast()
        {
            var fisher = FisherData.FirstOrDefault(x => x.UserId == "00");

            System.Tournament.StartTournament();
            fisher.Records.Clear();
            fisher.IsFishing = false;
            fisher.Hooked    = null;
            var response  = Module.CatchFish("", fisher.UserId);
            var responses = response.Responses;

            Assert.IsTrue(response.Processed);
            Assert.IsNull(response.Errors);
            Assert.AreEqual(1, responses.Count);
            Assert.IsTrue(responses[0].Contains("!cast"));
            Assert.IsFalse(fisher.IsFishing);
            Assert.AreEqual(0, fisher.Records.Count);
        }
Ejemplo n.º 24
0
        public void PushesNotificationOnNewGlobalRecord()
        {
            var handlerMock = new Mock <PushNotificationHandler>();

            Module.PushNotification += handlerMock.Object;
            LeaderboardMock.Data.Clear();
            System.Tournament.StartTournament();
            var fisher = FisherData.FirstOrDefault(x => x.UserId.Equals("00"));

            fisher.IsFishing  = true;
            fisher.Hooked     = FishData[0];
            fisher.HookedTime = DateTime.Now;
            Module.CatchFish("", fisher.UserId);
            handlerMock.Verify(x => x(It.IsAny <string>(), It.IsAny <CommandResult>()), Times.Once);
            var result = handlerMock.Invocations[0].Arguments[1] as CommandResult;

            Assert.IsNull(result.Responses);
            Assert.IsTrue(result.Messages.Any(x => x.Contains(UserLookup.GetUsername(fisher.UserId))));
        }
Ejemplo n.º 25
0
        public void RespondsWithCompactPlayerLeaderboard()
        {
            var fisher    = FisherData.FirstOrDefault(x => x.UserId.Equals("00"));
            var responses = Module.PlayerLeaderboardCompact(null, fisher.UserId);

            Assert.AreEqual(3, responses.Items.Count());
            var compact = responses.ToCompact();

            foreach (var fish in fisher.Records)
            {
                Assert.IsTrue(
                    compact.Any(
                        x => x.Contains(fish.Fish.Name) &&
                        x.Contains(fish.Length.ToString()) &&
                        x.Contains(fish.Weight.ToString())
                        )
                    );
            }
        }
Ejemplo n.º 26
0
        public void CatchesFish()
        {
            var fisher = FisherData.FirstOrDefault(x => x.UserId == "00");

            System.Tournament.StartTournament();
            fisher.Records.Clear();
            fisher.IsFishing  = true;
            fisher.HookedTime = DateTime.Now;
            fisher.Hooked     = FishData[0];
            var response  = Module.CatchFish("", fisher.UserId);
            var responses = response.Responses;

            Assert.IsTrue(response.Processed);
            Assert.IsNull(response.Errors);
            Assert.AreEqual(2, responses.Count);
            Assert.IsTrue(responses.Any(x => x.Contains("biggest")));
            Assert.IsTrue(responses.All(x => x.Contains(fisher.Records[0].Fish.Name)));
            Assert.IsFalse(fisher.IsFishing);
            Assert.AreEqual(1, fisher.Records.Count);
        }
Ejemplo n.º 27
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.º 28
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.º 29
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));
        }
Ejemplo n.º 30
0
 public Classifier_Train(FisherData fisherData)
 {
     trainParameters.Fisher = fisherData;
     _IsTrained             = LoadTrainingData(Application.StartupPath + DIRECTORYDATABASE);
 }