public void TestRecordingState()
        {
            AtemMockServerWrapper.Each(_output, _pool, null, DeviceTestCases.Recording, helper =>
            {
                var switcher = helper.SdkClient.SdkSwitcher as IBMDSwitcherRecordAV;
                Assert.NotNull(switcher);

                AtemState stateBefore = helper.Helper.BuildLibState();

                InitDisk(helper, stateBefore);
                InitRecording(helper, stateBefore);

                stateBefore.Recording.Status.TotalRecordingTimeAvailable = 0;

                for (int i = 0; i < 10; i++)
                {
                    stateBefore.Recording.Status.State = Randomiser.EnumValue <RecordingStatus>();
                    stateBefore.Recording.Status.Error = Randomiser.EnumValue <RecordingError>();
                    var cmd = new RecordingStatusGetCommand()
                    {
                        Status = stateBefore.Recording.Status.State,
                        Error  = stateBefore.Recording.Status.Error,
                    };
                    helper.SendFromServerAndWaitForChange(stateBefore, cmd);
                }
            });
        }
        public void TestTotalRecordingTimeAvailable()
        {
            var handler = CommandGenerator.CreateAutoCommandHandler <RecordingStatusSetCommand, RecordingStatusGetCommand>("IsRecording", true);

            AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.Streaming, helper =>
            {
                var switcher = helper.SdkClient.SdkSwitcher as IBMDSwitcherStreamRTMP;
                Assert.NotNull(switcher);

                AtemState stateBefore = helper.Helper.BuildLibState();
                stateBefore.Recording.Status.Error = RecordingError.NoMedia;

                for (int i = 0; i < 10; i++)
                {
                    var cmd = new RecordingStatusGetCommand
                    {
                        TotalRecordingTimeAvailable = Randomiser.RangeInt(int.MaxValue)
                    };
                    stateBefore.Recording.Status.TotalRecordingTimeAvailable = cmd.TotalRecordingTimeAvailable;

                    helper.SendFromServerAndWaitForChange(stateBefore, cmd);
                }
            });
        }