Beispiel #1
0
        public async Task Transactions_sum_up_to_zero()
        {
            const int NumTransactions = 100000;

            var commandTask = Task.Run(() =>
            {
                foreach (var randomTransferCommand in RandomTransferCommands(NumTransactions / 2))
                {
                    _kernel.Execute(randomTransferCommand, e => { });
                }
            });


            var queryTask = Task.Run(() =>
            {
                for (int i = 0; i < NumTransactions / 2; i++)
                {
                    var query = new AccountsSummed();
                    var sum   = _kernel.Execute(query);
                    //the sum at any given point in time should always be 0
                    Assert.AreEqual(0, sum);
                }
            });
            await Task.WhenAll(commandTask, queryTask);
        }
Beispiel #2
0
        public void Transactions_sum_up_to_zero()
        {
            var commandTask = Task.Run(() =>
            {
                foreach (var randomTransferCommand in RandomTransferCommands(100000))
                {
                    _kernel.Execute(randomTransferCommand, e => { });
                }
            });

            int totalSum = 0;

            var queryTask = Task.Run(() =>
            {
                for (int i = 0; i < 1000000; i++)
                {
                    var query = new AccountsSummed();
                    totalSum += (int)_kernel.Execute(query);
                }
            });

            Task.WaitAll(commandTask, queryTask);
            Assert.Equal(0, totalSum);
        }