Beispiel #1
0
        public void Broker_Send_Many()
        {
            var succeeded = 0;
            var failed    = 0;
            var attempted = 0;

            var broker = new TestServiceBroker();

            broker.OnNotificationFailed += (notification, exception) => {
                failed++;
            };
            broker.OnNotificationSucceeded += (notification) => {
                succeeded++;
            };
            broker.Start();
            broker.ChangeScale(1);

            var c = Log.StartCounter();

            for (int i = 1; i <= 1000; i++)
            {
                attempted++;
                broker.QueueNotification(new TestNotification {
                    TestId = i
                });
            }

            broker.Stop();

            c.StopAndLog("Test Took {0} ms");

            Assert.AreEqual(attempted, succeeded);
            Assert.AreEqual(0, failed);
        }
#pragma warning disable 1998
        public async Task Broker_Some_Fail()
#pragma warning restore 1998
        {
            var succeeded = 0;
            var failed    = 0;
            var attempted = 0;

            const int count   = 10;
            var       failIds = new[] { 3, 5, 7 };

            var broker = new TestServiceBroker();

            broker.OnNotificationFailed += (notification, exception) =>
                                           failed++;
            broker.OnNotificationSucceeded += (notification) =>
                                              succeeded++;

            broker.Start();
            broker.ChangeScale(1);

            var c = Log.StartCounter();

            for (int i = 1; i <= count; i++)
            {
                attempted++;
                broker.QueueNotification(new TestNotification
                {
                    TestId     = i,
                    ShouldFail = failIds.Contains(i)
                });
            }

            broker.Stop();

            c.StopAndLog("Test Took {0} ms");

            Assert.Equal(attempted - failIds.Length, succeeded);
            Assert.Equal(failIds.Length, failed);
        }