public void HooksFish() { var fisher = FisherData.First(); var result = System.HookFish(fisher); Assert.IsTrue(result); Assert.IsNotNull(fisher.Hooked); }
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))); }
public void CastCreatesNewFisherIfNoneExistsWithMatchingUserId() { var newId = "NewId"; System.Cast(newId); var newFisher = FisherData.FirstOrDefault(x => x.UserId.Equals(newId)); Assert.IsNotNull(newFisher); }
public void CatchFishDoesNothingIfNoFishHooked() { var fisher = FisherData.First(); fisher.Hooked = null; var catchData = System.CatchFish(fisher); Assert.IsNull(catchData); }
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)); }
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); }
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)); }
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); }
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")); }
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)); }
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); }
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); }
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))); }
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)); } }
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")); }
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")); }
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))); }
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"))); }
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); }
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); }
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); }
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())); }
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); }
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)))); }
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()) ) ); } }
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); }
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); }
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); }
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)); }
public Classifier_Train(FisherData fisherData) { trainParameters.Fisher = fisherData; _IsTrained = LoadTrainingData(Application.StartupPath + DIRECTORYDATABASE); }