public void Does_not_add_already_existing_component()
        {
            var virtualStudio = new VirtualStudio();
            var placeholder   = new PlaceholderStudioComponent();

            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            var component = virtualStudio.AddComponent(placeholder) as PlaceholderStudioComponent;

            virtualStudio.AddComponent(component);

            Assert.IsTrue(virtualStudio.Components.Count == 1);
        }
        public void Init()
        {
            virtualStudio = new VirtualStudio();

            var placeholder = new PlaceholderStudioComponent();

            placeholder.AddInput("Input 1", DataKind.Audio, "UDP");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            componentWithUdpAudioInput = virtualStudio.AddComponent(placeholder);

            placeholder = new PlaceholderStudioComponent();
            placeholder.AddOutput("Output 1", DataKind.Audio, "UDP");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            componentWithUdpAudioOutput = virtualStudio.AddComponent(placeholder);

            connection = virtualStudio.CreateConnection(componentWithUdpAudioOutput.Outputs[0], componentWithUdpAudioInput.Inputs[0]);
        }
        public void Init()
        {
            virtualStudio = new VirtualStudio();
            var placeholder = new PlaceholderStudioComponent();

            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            virtualStudio.AddComponent(placeholder);
        }
 public void Init()
 {
     virtualStudio           = new VirtualStudio();
     placeholderInRepository = new PlaceholderStudioComponent();
     placeholderInRepository.SetName("New Placeholder");
     placeholderInRepository.AddInput("Input 1", DataKind.Data, "hgdfhgoid");
     virtualStudio.ComponentRepository.AddPlaceholder(placeholderInRepository);
     placeholderInComponents = virtualStudio.AddComponent(placeholderInRepository) as PlaceholderStudioComponent;
 }
        public void Does_not_add_component_that_does_not_exist_in_ComponentRepository()
        {
            var virtualStudio = new VirtualStudio();
            var component     = new PlaceholderStudioComponent();

            var addedComponent = virtualStudio.AddComponent(component);

            Assert.IsNull(addedComponent);
            Assert.IsTrue(virtualStudio.Components.Count == 0);
        }
        public void Init()
        {
            virtualStudio = new VirtualStudio();
            var placeholderComponent = new PlaceholderStudioComponent();

            placeholderComponent.SetName("New Placeholder");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholderComponent);
            component           = virtualStudio.AddComponent(placeholderComponent);
            repositoryComponent = placeholderComponent;
        }
        public void Adds_component()
        {
            var virtualStudio = new VirtualStudio();
            var component     = new PlaceholderStudioComponent();

            virtualStudio.ComponentRepository.AddPlaceholder(component);

            virtualStudio.AddComponent(component);

            Assert.IsTrue(virtualStudio.Components.Count == 1);
        }
        public void Removes_component()
        {
            var virtualStudio = new VirtualStudio();
            var placeholder   = new PlaceholderStudioComponent();

            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            var component = virtualStudio.AddComponent(placeholder) as PlaceholderStudioComponent;

            virtualStudio.RemoveComponent(component);

            Assert.IsTrue(virtualStudio.Components.Count == 0);
        }
        public void Invokes_event_when_a_component_gets_added()
        {
            var  virtualStudio   = new VirtualStudio();
            bool wasEventInvoked = false;

            virtualStudio.ComponentAdded += (_, component) => wasEventInvoked = true;
            var component = new PlaceholderStudioComponent();

            virtualStudio.ComponentRepository.AddPlaceholder(component);

            virtualStudio.AddComponent(component);

            Assert.IsTrue(wasEventInvoked);
        }
        public void Removes_connection()
        {
            var virtualStudio = new VirtualStudio();
            var placeholder   = new PlaceholderStudioComponent();

            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            var component = virtualStudio.AddComponent(placeholder) as PlaceholderStudioComponent;
            var input     = component.AddInput("input", DataKind.Audio, "ConnectionType");
            var output    = component.AddOutput("output", DataKind.Audio, "ConnectionType");
            IStudioConnection connection = virtualStudio.CreateConnection(output, input);

            virtualStudio.RemoveConnection(connection);

            Assert.IsTrue(virtualStudio.Connections.Count == 0);
        }
        public void Adds_connection_between_endpoints_that_exist_in_components()
        {
            var virtualStudio = new VirtualStudio();
            var placeholder   = new PlaceholderStudioComponent();

            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            var component = virtualStudio.AddComponent(placeholder) as PlaceholderStudioComponent;
            var input     = component.AddInput("input", DataKind.Audio, "ConnectionType");
            var output    = component.AddOutput("output", DataKind.Audio, "ConnectionType");

            Assert.IsTrue(virtualStudio.CanCreateConnection(output, input));

            IStudioConnection connection = virtualStudio.CreateConnection(output, input);

            Assert.IsNotNull(connection);
            Assert.IsTrue(virtualStudio.Connections.Count == 1);
        }
        public void Fires_event_when_a_component_gets_removed()
        {
            var virtualStudio = new VirtualStudio();
            var placeholder   = new PlaceholderStudioComponent();

            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            var  component       = virtualStudio.AddComponent(placeholder) as PlaceholderStudioComponent;
            var  input           = component.AddInput("input", DataKind.Audio, "ConnectionType");
            var  output          = component.AddOutput("output", DataKind.Audio, "ConnectionType");
            bool wasEventInvoked = false;

            virtualStudio.ComponentRemoved += (_, component) => wasEventInvoked = true;

            virtualStudio.RemoveComponent(component);

            Assert.IsTrue(wasEventInvoked);
        }
Exemplo n.º 13
0
        public async Task Adds_an_Output_to_a_PlaceholderComponent_in_Components_of_VirtualStudio()
        {
            var placeholder      = virtualStudio.ComponentRepository.Placeholders.First();
            var addedPlaceholder = virtualStudio.AddComponent(placeholder);
            var newOutput        = new StudioComponentEndpointDto {
                Id = 0, Name = "New Output", DataKind = DataKind.Audio, ConnectionType = "UDP"
            };

            var addOutputToPlaceholderCommand = new AddOutputToPlaceholderCommand(addedPlaceholder.Id, newOutput);
            await addOutputToPlaceholderCommand.Process(virtualStudio);

            Assert.IsTrue(addedPlaceholder.Outputs.Count == 1);
            Assert.IsTrue(placeholder.Id != addedPlaceholder.Id);
            Assert.AreEqual(newOutput.Name, addedPlaceholder.Outputs[0].Name);
            Assert.AreEqual(EndpointIOType.Output, addedPlaceholder.Outputs[0].IOType);
            Assert.AreEqual(newOutput.DataKind, addedPlaceholder.Outputs[0].DataKind);
            Assert.AreEqual(newOutput.ConnectionType, addedPlaceholder.Outputs[0].ConnectionType);
        }
        private bool ProcessSync(VirtualStudio virtualStudio)
        {
            var foundComponent = virtualStudio.ComponentRepository.Find(c => c.Id == componentId);

            if (foundComponent is null)
            {
                Error = new OperationError(ErrorType.NotFound, $"StudioComponent with ID {componentId} not found in ComponentRepository.");
                return(false);
            }
            if (virtualStudio.Components.Contains(foundComponent))
            {
                Error = new OperationError(ErrorType.InvalidOperation, $"The StudioComponent with ID {componentId} was already added.");
                return(false);
            }

            virtualStudio.AddComponent(foundComponent);
            return(true);
        }
        public void Calls_ChangeConnectionState_when_a_connection_state_gets_changed(ConnectionState connectionState)
        {
            var componentMock = new Mock <IStudioComponent>();
            var input         = new StudioComponentInput(1, "input", DataKind.Audio, "WebRTC", componentMock.Object);
            var output        = new StudioComponentOutput(2, "output", DataKind.Audio, "WebRTC", componentMock.Object);

            componentMock.Setup(m => m.Inputs).Returns(new List <StudioComponentInput> {
                input
            });
            componentMock.Setup(m => m.Outputs).Returns(new List <StudioComponentOutput> {
                output
            });
            virtualStudio.ComponentRepository.AddClient(componentMock.Object);
            virtualStudio.AddComponent(componentMock.Object);
            var connection = virtualStudio.CreateConnection(output, input);

            operationHandlerMock.Setup(m => m.ChangeConnectionState(virtualStudioName, 1, connectionState)).Verifiable();

            componentMock.Raise(m => m.InputConnectionStateUpdated  += null, null, (input, connection.Id, connectionState));
            componentMock.Raise(m => m.OutputConnectionStateUpdated += null, null, (output, connection.Id, connectionState));

            operationHandlerMock.Verify();
        }
Exemplo n.º 16
0
        public void Init()
        {
            virtualStudio = new VirtualStudio();

            var placeholder = new PlaceholderStudioComponent();

            placeholder.AddInput("Input 1", DataKind.Audio, "UDP");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            componentWithUdpAudioInput             = virtualStudio.AddComponent(placeholder);
            componentWithUdpAudioInputInRepository = placeholder;

            placeholder = new PlaceholderStudioComponent();
            placeholder.AddInput("Input 1", DataKind.Audio, "WebRtc");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            componentWithWebRtcAudioInput = virtualStudio.AddComponent(placeholder);

            placeholder = new PlaceholderStudioComponent();
            placeholder.AddInput("Input 1", DataKind.Video, "WebRtc");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            componentWithWebRtcVideoInput = virtualStudio.AddComponent(placeholder);

            placeholder = new PlaceholderStudioComponent();
            placeholder.AddOutput("Output 1", DataKind.Audio, "UDP");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            componentWithUdpAudioOutput = virtualStudio.AddComponent(placeholder);

            placeholder = new PlaceholderStudioComponent();
            placeholder.AddOutput("Output 1", DataKind.Audio, "WebRtc");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            componentWithWebRtcAudioOutput = virtualStudio.AddComponent(placeholder);

            placeholder = new PlaceholderStudioComponent();
            placeholder.AddOutput("Output 1", DataKind.Video, "WebRtc");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            componentWithWebRtcVideoOutput = virtualStudio.AddComponent(placeholder);
        }