public void FindPrimeNumbersWrongParams_ExpectArgumentOutOfRangeException()
        {
            Action actionArg1 = () => _ = PrimeCalculation.EratosthenesSieve(0, 1, null).ToArray();
            Action actionArg2 = () => _ = PrimeCalculation.EratosthenesSieve(2, 0, null).ToArray();

            actionArg1.Should().ThrowExactly <ArgumentOutOfRangeException>();
            actionArg2.Should().ThrowExactly <ArgumentOutOfRangeException>();
        }
        /// <summary>
        /// Calculate prime numbers. Send message with result to ui handlers. Return result to server.
        /// </summary>
        /// <param name="requestParam"></param>
        /// <returns></returns>
        protected override async Task <PrimeRet> ResponseHandler(PrimeParam requestParam)
        {
            if (requestParam == null)
            {
                throw new NullReferenceException(nameof(requestParam));
            }

            var result = new PrimeRet()
            {
                Primes = await Task.Run(() =>
                                        PrimeCalculation.EratosthenesSieve(requestParam.BeginNumber, requestParam.Count, requestParam.Primes)
                                        .ToArray()).ConfigureAwait(false)
            };
            await _eventAggregator.PublishOnCurrentThreadAsync(result);

            return(result);
        }
        public void FindPrimeNumbers_ShouldReturnArray(int beginNo, int count, int[] primes, int[] expected)
        {
            var result = PrimeCalculation.EratosthenesSieve(beginNo, count, primes).ToArray();

            result.Should().BeEquivalentTo(expected);
        }