public void AddMultipleCharactersThenClear()
        {
            var fakeStaticWrapper = A.Fake <IStaticWrapper>();

            A.CallTo(fakeStaticWrapper).WithReturnType <ContributionDefinition>()
            .Returns(new ContributionDefinition {
                ContributionValue = 1, ContributionId = 1
            });

            var contributionManager = new ContributionManager(
                new ConcurrentDictionary <uint, List <PlayerContribution> >(),
                ContributionFactorReferenceList);

            contributionManager.UpdateContribution(100, 1);
            contributionManager.UpdateContribution(102, 2);
            contributionManager.UpdateContribution(104, 2);
            contributionManager.UpdateContribution(104, 1);

            contributionManager.RemoveCharacter(102);
            var result = contributionManager.GetContributionValue(102);

            Assert.IsTrue(result == 0);

            contributionManager.Clear();
            var result2 = contributionManager.GetContributionValue(102);

            Assert.IsTrue(result2 == 0);
            var result3 = contributionManager.GetContributionValue(104);

            Assert.IsTrue(result3 == 0);
        }
        public void RemoveCharacterFromNotEmpty()
        {
            var contributionManager = new ContributionManager(new ConcurrentDictionary <uint, List <PlayerContribution> >(), ContributionFactorReferenceList);

            contributionManager.AddCharacter(100);
            Assert.IsTrue(contributionManager.RemoveCharacter(100));
            var result = contributionManager.GetContributionValue(100);

            Assert.IsTrue(result == 0);
        }
        public void UpdateCharacterThenRemoveThenAdd()
        {
            var contributionManager = new ContributionManager(
                new ConcurrentDictionary <uint, List <PlayerContribution> >(),
                ContributionFactorReferenceList);

            contributionManager.UpdateContribution(100, 1);
            contributionManager.UpdateContribution(100, 2);
            contributionManager.UpdateContribution(100, 2);
            contributionManager.UpdateContribution(100, 1);

            contributionManager.RemoveCharacter(100);

            contributionManager.AddCharacter(100);

            var result = contributionManager.GetContributionValue(100);

            Assert.IsTrue(result == 0);
        }
        public void RemoveCharacterFromEmpty()
        {
            var contributionManager = new ContributionManager(new ConcurrentDictionary <uint, List <PlayerContribution> >(), ContributionFactorReferenceList);

            Assert.IsFalse(contributionManager.RemoveCharacter(100));
        }