public void TestInit()
        {
            var virtualStudio = new VirtualStudioWithArrangement();

            // Create a placeholder and add it to ComponentRepository and add a copy to the VirtualStudio's components.
            placeholderInRepository = new PlaceholderStudioComponent();
            placeholderInRepository.SetName("Placeholder 1");
            placeholderInRepository.AddInput("Input 1", Shared.DataKind.Audio, "WebRTC");
            placeholderInRepository.AddOutput("Output 1", Shared.DataKind.Audio, "WebRTC");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholderInRepository);
            placeholderInComponents = virtualStudio.AddComponent(placeholderInRepository);

            // Create a component mock and add it to ComponentRepository AND the VirtualStudio.
            client1Mock = new Mock <IStudioComponent>();
            client1Mock.Setup(m => m.SetId(It.IsAny <int>())).Callback <int>((value) => client1Id = value);
            client1Mock.SetupGet(m => m.Id).Returns(() => client1Id);
            virtualStudio.ComponentRepository.AddClient(client1Mock.Object);
            virtualStudio.AddComponent(client1Mock.Object);

            // Create a component mock and add it only to ComponentRepository.
            client2Mock = new Mock <IStudioComponent>();
            client2Mock.Setup(m => m.SetId(It.IsAny <int>())).Callback <int>((value) => client2Id = value);
            client2Mock.SetupGet(m => m.Id).Returns(() => client2Id);
            virtualStudio.ComponentRepository.AddClient(client2Mock.Object);

            this.virtualStudio = virtualStudio;

            operationHandlerMock        = new Mock <IVirtualStudioUpdateListener>();
            virtualStudioEventProcessor = new VirtualStudioEventProcessor(virtualStudio, virtualStudioName, operationHandlerMock.Object);
        }
        public async Task Adds_a_PlaceholderComponent_to_the_ComponentRepository()
        {
            var placeholderComponent = new PlaceholderStudioComponent();

            placeholderComponent.SetName("New Placeholder");
            placeholderComponent.AddInput("Input 1", DataKind.Video, "WebRtc");
            placeholderComponent.AddOutput("Output 1", DataKind.Video, "WebRtc");

            var addPlaceholderToRepositoryCommand = new AddPlaceholderToRepositoryCommand(placeholderComponent.ToDto());
            await addPlaceholderToRepositoryCommand.Process(virtualStudio);

            Assert.IsTrue(virtualStudio.ComponentRepository.Placeholders.Count == 1);
            var addedPlaceholder = virtualStudio.ComponentRepository.Placeholders.First();

            Assert.AreEqual(placeholderComponent.Name, addedPlaceholder.Name);
            Assert.AreEqual(placeholderComponent.Inputs.Count, addedPlaceholder.Inputs.Count);
            Assert.AreEqual(placeholderComponent.Outputs.Count, addedPlaceholder.Outputs.Count);
            Assert.AreEqual(placeholderComponent.Inputs[0].Id, addedPlaceholder.Inputs[0].Id);
            Assert.AreEqual(placeholderComponent.Inputs[0].Name, addedPlaceholder.Inputs[0].Name);
            Assert.AreEqual(placeholderComponent.Inputs[0].IOType, addedPlaceholder.Inputs[0].IOType);
            Assert.AreEqual(placeholderComponent.Inputs[0].DataKind, addedPlaceholder.Inputs[0].DataKind);
            Assert.AreEqual(placeholderComponent.Inputs[0].ConnectionType, addedPlaceholder.Inputs[0].ConnectionType);
            Assert.AreEqual(placeholderComponent.Outputs[0].Id, addedPlaceholder.Outputs[0].Id);
            Assert.AreEqual(placeholderComponent.Outputs[0].Name, addedPlaceholder.Outputs[0].Name);
            Assert.AreEqual(placeholderComponent.Outputs[0].IOType, addedPlaceholder.Outputs[0].IOType);
            Assert.AreEqual(placeholderComponent.Outputs[0].DataKind, addedPlaceholder.Outputs[0].DataKind);
            Assert.AreEqual(placeholderComponent.Outputs[0].ConnectionType, addedPlaceholder.Outputs[0].ConnectionType);
        }
        public async Task Gets_VirtualStudio_data_with_a_connection()
        {
            var placeholder1 = new PlaceholderStudioComponent();

            placeholder1.AddInput("Input 1", DataKind.Audio, "WebRtc");
            var placeholder2 = new PlaceholderStudioComponent();

            placeholder2.AddOutput("Output 1", DataKind.Audio, "WebRtc");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder1);
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder2);
            var nodePosition   = new Position2D(23, 45);
            var componentNode1 = virtualStudio.AddComponent(placeholder1, nodePosition);
            var componentNode2 = virtualStudio.AddComponent(placeholder2, nodePosition);
            var connection     = virtualStudio.CreateConnection(componentNode2.Component.Outputs[0], componentNode1.Component.Inputs[0]);

            var getVirtualStudioQuery = new GetVirtualStudioWithArrangementQuery();
            var virtualStudioDto      = await getVirtualStudioQuery.Process(virtualStudio);

            Assert.IsTrue(virtualStudioDto.Connections.Count() == 1);
            var connectionDto = virtualStudioDto.Connections.First();

            Assert.AreEqual(connection.Id, connectionDto.Id);
            Assert.AreEqual(connection.Input.Id, connectionDto.InputId);
            Assert.AreEqual(connection.Input.Component.Id, connectionDto.InputComponentId);
            Assert.AreEqual(connection.Output.Id, connectionDto.OutputId);
            Assert.AreEqual(connection.Output.Component.Id, connectionDto.OutputComponentId);
            Assert.AreEqual(connection.State, connectionDto.State);
        }
        public async Task Gets_VirtualStudio_data_with_placeholders()
        {
            var placeholder = new PlaceholderStudioComponent();

            placeholder.AddInput("Input 1", DataKind.Audio, "WebRtc");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder);
            var nodePosition = new Position2D(23, 45);

            virtualStudio.AddComponent(placeholder, nodePosition);

            var getVirtualStudioQuery = new GetVirtualStudioWithArrangementQuery();
            var virtualStudioDto      = await getVirtualStudioQuery.Process(virtualStudio);

            Assert.IsTrue(virtualStudioDto.ComponentRepository.Placeholders.Count() == 1);
            var repoPlaceholder = virtualStudioDto.ComponentRepository.Placeholders.First();

            Assert.AreEqual(repoPlaceholder.Inputs.First().Name, placeholder.Inputs[0].Name);
            Assert.IsTrue(virtualStudioDto.ComponentNodes.Count() == 1);
            var componentNode = virtualStudioDto.ComponentNodes.First();

            Assert.AreEqual(nodePosition.X, componentNode.X);
            Assert.AreEqual(nodePosition.Y, componentNode.Y);
            Assert.AreEqual(componentNode.Component.Inputs.First().Name, placeholder.Inputs[0].Name);
            Assert.AreNotEqual(repoPlaceholder.Id, componentNode.Component.Id);
            Assert.IsTrue(virtualStudioDto.Connections.Count() == 0);
        }
Exemplo n.º 5
0
        public void Init()
        {
            virtualStudioWithArrangement = new VirtualStudioWithArrangement();
            var placeholder = new PlaceholderStudioComponent();

            virtualStudioWithArrangement.ComponentRepository.AddPlaceholder(placeholder);
            componentNode = virtualStudioWithArrangement.AddComponent(placeholder, new Position2D(0, 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 Init()
        {
            virtualStudio = new VirtualStudio();
            var placeholderComponent = new PlaceholderStudioComponent();

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

            operationHandlerMock.Setup(m => m.AddPlaceholderToRepository(virtualStudioName, It.IsAny <StudioComponentDto>())).Verifiable();

            virtualStudio.ComponentRepository.AddPlaceholder(placeholderToBeAdded);

            operationHandlerMock.Verify();
        }
        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);
        }
Exemplo n.º 11
0
        public async Task Init()
        {
            virtualStudio = new VirtualStudio();
            var placeholderComponent = new PlaceholderStudioComponent();

            placeholderComponent.SetName("New Placeholder");

            var addPlaceholderToRepositoryCommand = new AddPlaceholderToRepositoryCommand(placeholderComponent.ToDto());
            await addPlaceholderToRepositoryCommand.Process(virtualStudio);
        }
Exemplo n.º 12
0
        public void Adds_a_PlaceholderStudioComponent()
        {
            var studioComponentRepository = new StudioComponentRepository();
            var placeholder = new PlaceholderStudioComponent();

            bool success = studioComponentRepository.AddPlaceholder(placeholder);

            Assert.IsTrue(success);
            Assert.IsTrue(placeholder.Id == 1);
        }
        public void Does_not_add_a_component_that_does_not_exist_in_ComponentRepository()
        {
            var component   = new PlaceholderStudioComponent();
            var arrangement = new VirtualStudioWithArrangement();

            var addedComponent = arrangement.AddComponent(component);

            Assert.IsNull(addedComponent);
            Assert.IsTrue(arrangement.Components.Count == 0);
        }
        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 Adds_component_to_Components_and_ComponentNodes()
        {
            var component   = new PlaceholderStudioComponent();
            var arrangement = new VirtualStudioWithArrangement();

            arrangement.ComponentRepository.AddPlaceholder(component);

            arrangement.AddComponent(component);

            Assert.IsTrue(arrangement.Components.Count == arrangement.ComponentNodes.Count);
            Assert.IsTrue(arrangement.Components.Count == 1);
        }
Exemplo n.º 16
0
        public void Finds_a_StudioComponent_by_ID()
        {
            var studioComponentRepository = new StudioComponentRepository();
            var placeholder = new PlaceholderStudioComponent();

            studioComponentRepository.AddPlaceholder(placeholder);

            var foundComponent = studioComponentRepository.Find(c => c.Id == placeholder.Id);

            Assert.IsNotNull(foundComponent);
            Assert.AreEqual(placeholder, foundComponent);
        }
        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 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 Removes_component_from_Components_and_ComponentNodes()
        {
            var component   = new PlaceholderStudioComponent();
            var arrangement = new VirtualStudioWithArrangement();

            arrangement.ComponentRepository.AddPlaceholder(component);
            var addedComponent = arrangement.AddComponent(component);

            arrangement.RemoveComponent(addedComponent);

            Assert.IsTrue(arrangement.Components.Count == arrangement.ComponentNodes.Count);
            Assert.IsTrue(arrangement.Components.Count == 0);
        }
        public void Adds_component_at_provided_position()
        {
            var component      = new PlaceholderStudioComponent();
            var targetPosition = new Position2D(12, 34);
            var arrangement    = new VirtualStudioWithArrangement();

            arrangement.ComponentRepository.AddPlaceholder(component);

            arrangement.AddComponent(component, targetPosition);

            Assert.IsTrue(arrangement.ComponentNodes.Count == 1);
            Assert.AreEqual(targetPosition, arrangement.ComponentNodes.First().Position);
        }
        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 Does_not_add_a_ComponentNode_or_Component_if_the_contained_component_already_exists()
        {
            var component      = new PlaceholderStudioComponent();
            var targetPosition = new Position2D(12, 34);
            var arrangement    = new VirtualStudioWithArrangement();

            arrangement.ComponentRepository.AddPlaceholder(component);
            var existingComponent = arrangement.AddComponent(component, targetPosition).Component;

            arrangement.AddComponent(existingComponent, targetPosition);

            Assert.IsTrue(arrangement.ComponentNodes.Count == arrangement.Components.Count);
            Assert.IsTrue(arrangement.ComponentNodes.Count == 1);
        }
        public void Changes_position_of_ComponentNode()
        {
            var component   = new PlaceholderStudioComponent();
            var arrangement = new VirtualStudioWithArrangement();

            arrangement.ComponentRepository.AddPlaceholder(component);
            arrangement.AddComponent(component);
            var componentNode  = arrangement.ComponentNodes.First();
            var targetPosition = new Position2D(12, 34);

            arrangement.MoveComponentNode(componentNode, targetPosition);

            Assert.AreEqual(targetPosition, arrangement.ComponentNodes.First().Position);
        }
        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);
        }
Exemplo n.º 25
0
        public void Throws_exception_when_adding_a_component_with_an_existing_ID()
        {
            var studioComponentRepository = new StudioComponentRepository();
            var placeholder  = new PlaceholderStudioComponent();
            var placeholder2 = new PlaceholderStudioComponent();

            placeholder2.SetId(1);

            studioComponentRepository.AddPlaceholder(placeholder);

            Assert.ThrowsException <ArgumentException>(() =>
            {
                studioComponentRepository.AddPlaceholder(placeholder2);
            });
        }
        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.º 27
0
        private bool ProcessSync(VirtualStudio virtualStudio)
        {
            var placeholder = new PlaceholderStudioComponent();

            placeholder.SetName(component.Name);

            foreach (var input in component.Inputs)
            {
                placeholder.AddInput(input.Name, input.DataKind, input.ConnectionType);
            }
            foreach (var output in component.Outputs)
            {
                placeholder.AddOutput(output.Name, output.DataKind, output.ConnectionType);
            }

            return(virtualStudio.ComponentRepository.AddPlaceholder(placeholder));
        }
        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 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);
        }
Exemplo n.º 30
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);
        }