public void DropCandidateIsRandom() { var fakeBountyManager = A.Fake <IBountyManager>(); var fakeContributionManager = A.Fake <IContributionManager>(); var fakeImpactMatrixManager = A.Fake <IImpactMatrixManager>(); var fakeRewardManager = A.Fake <RewardManager>(); var fakeStaticWrapper = A.Fake <IStaticWrapper>(); var rm = new RewardManager( fakeContributionManager, fakeStaticWrapper, new List <RewardPlayerKill>(), fakeImpactMatrixManager); var impactFractions = new ConcurrentDictionary <uint, float>(); impactFractions.TryAdd(100, 0.05f); impactFractions.TryAdd(101, 0.10f); impactFractions.TryAdd(102, 0.15f); impactFractions.TryAdd(103, 0.50f); impactFractions.TryAdd(104, 0.20f); var x = rm.GetPlayerRVRDropCandidate(impactFractions, 0); Assert.IsTrue(x == 102); var y = rm.GetPlayerRVRDropCandidate(impactFractions, 1); Assert.IsTrue(y == 103); var z = rm.GetPlayerRVRDropCandidate(impactFractions, 0); Assert.IsTrue(z != 0); }