public void NoMatchingOrchestrator(string anarchyType)
        {
            //arrange
            var orchestrator = Get.MotherFor
                               .MockAnarchyActionOrchestrator
                               .OrchestratorWithScheduleNamed("testAnarchyType")
                               .Build();

            var sut = new AnarchyManagerNew(new [] { orchestrator });

            //act
            var exception = Assert.Catch(() => sut.TriggerAction(anarchyType, null));

            //assert
            exception.Should().BeOfType <AnarchyActionNotFoundException>();
            orchestrator.Received(0).TriggerOnce(Arg.Any <TimeSpan?>());
        }
        public void MatchingOrchestrator(string anarchyType, int?durationSecs)
        {
            //arrange
            var orchestrator = Get.MotherFor
                               .MockAnarchyActionOrchestrator
                               .OrchestratorWithScheduleNamed("testAnarchyType")
                               .Build();

            var duration = durationSecs.HasValue ?
                           TimeSpan.FromSeconds(durationSecs.Value) :
                           (TimeSpan?)null;

            var sut = new AnarchyManagerNew(new [] { orchestrator });

            //act
            sut.TriggerAction(anarchyType, duration);

            //assert
            orchestrator.Received(1).TriggerOnce(duration);
        }
        public void SelectsFirstMatchingOrchestrator(string firstActionName, string secondActionName, int firstCount, int secondCount)
        {
            //arrange
            var schedule = new Schedule();

            var orchestrators = Get.CustomBuilderFor.MockAnarchyActionOrchestrators
                                .WithActionsNamed(firstActionName, secondActionName)
                                .WithSchedules(schedule, schedule)
                                .Build()
                                .Select(orchestratorBuilder => orchestratorBuilder.Build())
                                .ToList();

            var sut = new AnarchyManagerNew(orchestrators);

            //act
            sut.TriggerAction("firstActionName", TimeSpan.FromSeconds(1));

            //assert
            orchestrators[0].Received(firstCount).TriggerOnce(Arg.Any <TimeSpan?>());
            orchestrators[1].Received(secondCount).TriggerOnce(Arg.Any <TimeSpan?>());
        }