public void HooksFish() { var fisher = FisherData.First(); var result = System.HookFish(fisher); Assert.IsTrue(result); Assert.IsNotNull(fisher.Hooked); }
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 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 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 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 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)); }