public void BaseBee_DontSendMessagesWhenStopped()
        {
            BeeBase bee = new EmptyBaseBee();

            int operationsCount = 0;

            bee.ActionPerformed += (sender, args) =>
            {
                Interlocked.Increment(ref operationsCount);
            };

            bee.RequestForBeehiveData += (sender, args) =>
            {
                Interlocked.Increment(ref operationsCount);
            };

            bee.StartWork();
            bee.StopWork();

            int expectedOperationsCount = operationsCount;

            Task.Delay(200).GetAwaiter().GetResult();

            Assert.AreEqual(expectedOperationsCount, operationsCount);
        }
        public void BaseBee_CantStartWithoutBeehive()
        {
            BeeBase bee = new EmptyBaseBee();

            try
            {
                bee.StartWork();
                throw new AssertFailedException(
                          "Пчела, не связанная с ульем, не должна была начать работу.");
            }
            catch (InvalidOperationException)
            {
                // так и должно быть
            }
        }
        public void BaseBee_NormalWork()
        {
            BeeBase bee = new EmptyBaseBee();

            int operationsCount = 0;

            bee.ActionPerformed += (sender, args) =>
            {
                Interlocked.Increment(ref operationsCount);
            };

            bee.RequestForBeehiveData += (sender, args) => { };

            bee.StartWork();

            Task.Delay(EmptyBaseBee.IntervalMs * 20).GetAwaiter().GetResult();

            bee.StopWork();

            Assert.AreEqual(20, operationsCount);
        }