Example #1
0
            public void ReturnsCorrectValues(uint r1, uint m1, uint r2, uint m2, int expected)
            {
                var elix1 = new TmEventElix(r1, m1);
                var elix2 = new TmEventElix(r2, m2);

                var result = elix1.CompareTo(elix2);

                result.Should().Be(expected);
            }
Example #2
0
            public void ReturnsTrueForDifferentM(uint r, uint m)
            {
                var elix1 = new TmEventElix(r, m);
                var elix2 = new TmEventElix(r, m + 1);

                var result = elix1 != elix2;

                result.Should().BeTrue();
            }
Example #3
0
            public void ReturnsFalse(uint r, uint m)
            {
                var elix1 = new TmEventElix(r, m);
                var elix2 = new TmEventElix(r, m);

                var result = elix1 != elix2;

                result.Should().BeFalse();
            }
Example #4
0
            public void ReturnsFalseForDifferentR(uint r, uint m)
            {
                var elix1 = new TmEventElix(r, m);
                var elix2 = new TmEventElix(r + 1, m);

                var result = elix1 == elix2;

                result.Should().BeFalse();
            }
Example #5
0
            public void ReturnsFalseForWrongObject(uint r, uint m)
            {
                var elix1 = new TmEventElix(r, m);

                // ReSharper disable once SuspiciousTypeConversion.Global
                var result = elix1.Equals("string, will not work");

                result.Should().BeFalse();
            }
Example #6
0
            public void ReturnsFalseForDifferentM(uint r, uint m)
            {
                var elix1 = new TmEventElix(r, m);
                var elix2 = new TmEventElix(r, m + 1);

                var result = elix1.Equals(elix2);

                result.Should().BeFalse();
            }
Example #7
0
        public override async Task StartAsync(CancellationToken cancellationToken)
        {
            if (!await LoadWorkers())
            {
                _applicationLifetime.StopApplication();
                return;
            }

            _currentElix = await _api.GetCurrentEventsElix();

            await base.StartAsync(cancellationToken);
        }
Example #8
0
        private async Task Dispatch() // todo unit test
        {
            if (!await IsElixUpdated())
            {
                return;
            }

            var(newEvents, newElix) = await _api.GetCurrentEvents(_currentElix);

            if (newEvents == null)
            {
                return;
            }
            Tms.PrintDebug($"Обнаружены новые события: {newEvents.Count}. Начинается обработка");

            await Task.WhenAll(_workers.Select(h => h.FilterAndDoWork(newEvents)));

            _currentElix = newElix;
        }