Beispiel #1
0
        public AtemTestHelper(AtemSdkClientWrapper client, ITestOutputHelper output, AtemMockServer mockServer, AtemStateBuilderSettings stateSettings)
        {
            _mockServer   = mockServer;
            SdkClient     = client;
            Output        = output;
            StateSettings = stateSettings;

            SyncStates();
            _mockServer.LibReceive += LibAtemReceive;

            AssertStatesMatch();
        }
Beispiel #2
0
        private void RunTest(string caseId)
        {
            if (caseId == "")
            {
                return;
            }

            var commandData = DumpParser.BuildCommands(DeviceTestCases.Version, caseId);

            /*
             * var result = new List<string>();
             * foreach (byte[] payload in commandData)
             * {
             *  foreach (ParsedCommand rawCmd in ReceivedPacket.ParseCommands(payload))
             *  {
             *      if (CommandParser.Parse(caseId.Item1, rawCmd) == null)
             *      {
             *          _output.WriteLine("{0} - {1}", rawCmd.Name, rawCmd.BodyLength);
             *          result.Add(rawCmd.Name);
             *      }
             *  }
             * }
             * Assert.Empty(result);
             * // */


            using var server = new AtemMockServer("127.0.0.1", commandData, DeviceTestCases.Version);
            var stateSettings = new AtemStateBuilderSettings();

            using var helper = new AtemSdkClientWrapper("127.0.0.1", stateSettings, 1);

            var libAtemState = AtemTestHelper.SanitiseStateIncompabalities(DeviceTestCases.Version,
                                                                           GetLibAtemState(stateSettings, "127.0.0.1"));
            var sdkState = helper.BuildState();

            List <string> before = AtemStateComparer.AreEqual(sdkState, libAtemState);

            if (before.Count != 0 && _output != null)
            {
                _output.WriteLine("state mismatch:");
                before.ForEach(_output.WriteLine);
            }
            Assert.Empty(before);
        }
        // public AtemClient LibAtemClient { get; }

        // private bool _isDisposing;
        // private bool _libAtemConnected;

        public AtemMockServerPoolItem(string caseId, AtemStateBuilderSettings builderSettings, string bindIp)
        {
            _builderSettings = builderSettings;
            _bindIp          = bindIp;
            _sdkClients      = new Queue <AtemSdkClientWrapper>();
            _updatingClients = new List <AtemSdkClientWrapper>();
            _nextSdkId       = 0;

            List <byte[]> payloads = DumpParser.BuildCommands(DeviceTestCases.Version, caseId);

            // IReadOnlyList<ICommand> commands = DumpParser.ParseToCommands(DeviceTestCases.Version, payloads);

            // Build the device profile
            // var deviceProfileBuilder = new DeviceProfile.DeviceProfileHandler();
            // deviceProfileBuilder.HandleCommands(null, commands);
            // DeviceProfile = deviceProfileBuilder.Profile;

            // Build a default state
            // var state = new AtemState();
            // commands.ForEach(cmd => AtemStateBuilder.Update(state, cmd, builderSettings));
            // DefaultState = state;

            Server = new AtemMockServer(bindIp, payloads, DeviceTestCases.Version);

            /*
             * var connectionEvent = new AutoResetEvent(false);
             * LibAtemClient = new AtemClient(bindIp, false);
             * LibAtemClient.OnDisconnect += o => { Assert.True(_isDisposing, "LibAtem: Disconnect before disposing"); };
             * LibAtemClient.OnConnection += o =>
             * {
             *  Assert.False(_libAtemConnected, "LibAtem: Got reconnect");
             *  _libAtemConnected = true;
             *  connectionEvent.Set();
             * };
             * LibAtemClient.Connect();
             *
             * //SdkClient = new AtemSdkClientWrapper(bindIp", StateSettings);
             *
             * Assert.True(connectionEvent.WaitOne(TimeSpan.FromSeconds(3)), "LibAtem: Connection attempt timed out");
             */
        }