public void Start()
 {
     Console.WriteLine("KarmaPlugin started");
     _context = new KarmaContext();
     _context.Database.Migrate();
     _karmaRepository  = new KarmaRepository(_context);
     _reasonRepository = new ReasonRepository(_context);
 }
예제 #2
0
        public void ShouldTreatDifferentCapitalisationsTheSame()
        {
            KarmaRepository repository = CreateRepository();

            repository.UpdateOrAdd(_testNameWeirdlyCapitalised, 0);
            repository.UpdateOrAdd(_testName, 999);

            Assert.Equal(999, repository.KarmaFor(_testNameWeirdlyCapitalised));
        }
예제 #3
0
        public void GivenAGreaterNumberParameterThanEntriesExist_WhenGettingTopEntries_ShouldReturnAll()
        {
            KarmaRepository repository = CreateRepository();

            repository.UpdateOrAdd(_testNames[1], 0);
            repository.UpdateOrAdd(_testNames[0], 999);
            var result = repository.GetTop(200).Count();

            Assert.Equal(2, result);
        }
예제 #4
0
        public void ShouldReadPriorInstancesRecords()
        {
            KarmaRepository repository = CreateRepository();

            repository.UpdateOrAdd(_testName, 999);

            repository = CreateRepository();

            Assert.Equal(999, repository.KarmaFor(_testName));
        }
예제 #5
0
        public void ShouldAddMultipleEntriesOfSameName()
        {
            KarmaRepository repository = CreateRepository();

            repository.UpdateOrAdd(_testName, 0);
            repository.UpdateOrAdd(_testName, 2);

            Assert.True(repository.Exists(_testName));
            Assert.Equal(2, repository.KarmaFor(_testName));
        }
예제 #6
0
        public void GivenLowerNumberAddedFirst_WhenGettingTopEntries_ShouldOrderByDescendingValue()
        {
            KarmaRepository repository = CreateRepository();

            repository.UpdateOrAdd(_testNames[1], 0);
            repository.UpdateOrAdd(_testNames[0], 999);
            var result = repository.GetTop(2).ToList();

            Assert.Equal(999, result[0].Karma);
            Assert.Equal(0, result[1].Karma);
        }
예제 #7
0
        public void ShouldWriteToPriorInstanceRecords()
        {
            KarmaRepository repository = CreateRepository();

            repository.UpdateOrAdd(_testName, 0);

            repository = CreateRepository();
            repository.UpdateOrAdd(_testName, 2);

            Assert.True(repository.Exists(_testName));
            Assert.Equal(2, repository.KarmaFor(_testName));
        }
예제 #8
0
        public void GivenNullInput_WhenGettingTopEntries_ShouldReturnAll()
        {
            KarmaRepository repository = CreateRepository();

            repository.UpdateOrAdd(_testNames[0], 0);
            repository.UpdateOrAdd(_testNames[1], 999);
            repository.UpdateOrAdd(_testNames[2], 999);
            repository.UpdateOrAdd(_testNames[3], 999);
            repository.UpdateOrAdd(_testNames[4], 999);
            var result = repository.GetTop(null).Count();

            Assert.Equal(5, result);
        }
예제 #9
0
        public void WhenGettingTopEntries_ShouldReturnNumberRequested()
        {
            KarmaRepository repository = CreateRepository();

            repository.UpdateOrAdd(_testNames[0], 0);
            repository.UpdateOrAdd(_testNames[1], 999);
            repository.UpdateOrAdd(_testNames[2], 999);
            repository.UpdateOrAdd(_testNames[3], 999);
            repository.UpdateOrAdd(_testNames[4], 999);
            repository.UpdateOrAdd(_testNames[5], 999);
            repository.UpdateOrAdd(_testNames[6], 999);
            repository.UpdateOrAdd(_testNames[7], 999);
            repository.UpdateOrAdd(_testNames[8], 999);
            repository.UpdateOrAdd(_testNames[9], 999);
            repository.UpdateOrAdd(_testNames[10], 999);

            var result = repository.GetTop(2).Count();

            Assert.Equal(2, result);
        }
예제 #10
0
        public override void Init(Func<IKernel> kernel)
        {
            base.Init(kernel);

            _karmaRepository = new KarmaRepository();
        }