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);
        }
        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 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);
        }
예제 #4
0
        public void Init()
        {
            virtualStudioWithArrangement = new VirtualStudioWithArrangement();
            var placeholder = new PlaceholderStudioComponent();

            virtualStudioWithArrangement.ComponentRepository.AddPlaceholder(placeholder);
            componentNode = virtualStudioWithArrangement.AddComponent(placeholder, new Position2D(0, 0));
        }
예제 #5
0
        private void InitializeVirtualStudio(VirtualStudioWithArrangement virtualStudio)
        {
            var placeholder1 = new PlaceholderStudioComponent();

            placeholder1.SetName("Placeholder with input");
            placeholder1.AddInput("Input 1", DataKind.Audio, "WebRtc");
            placeholder1.AddInput("Input 2", DataKind.Video, "NDI");
            var placeholder2 = new PlaceholderStudioComponent();

            placeholder2.SetName("Placeholder with output");
            placeholder2.AddOutput("Output 1", DataKind.Audio, "WebRtc");
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder1);
            virtualStudio.ComponentRepository.AddPlaceholder(placeholder2);
            var componentNode1 = virtualStudio.AddComponent(placeholder1, new Position2D(100, 100));
            var componentNode2 = virtualStudio.AddComponent(placeholder2, new Position2D(100, 250));
            //virtualStudio.CreateConnection(componentNode2.Component.Outputs[0], componentNode1.Component.Inputs[0]);
        }
        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_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);
        }
        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 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 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);
        }