예제 #1
0
        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);
        }