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

            virtualStudioWithArrangement.ComponentRepository.AddPlaceholder(placeholder);
            componentNode = virtualStudioWithArrangement.AddComponent(placeholder, new Position2D(0, 0));
        }
 public static VirtualStudioWithArrangementDto ToDto(this VirtualStudioWithArrangement virtualStudioWithArrangement)
 {
     return(new VirtualStudioWithArrangementDto
     {
         ComponentNodes = virtualStudioWithArrangement.ComponentNodes.ToDto(),
         Connections = virtualStudioWithArrangement.Connections.ToDto(),
         ComponentRepository = virtualStudioWithArrangement.ComponentRepository.ToDto()
     });
 }
        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 async Task Init()
        {
            virtualStudio = new VirtualStudioWithArrangement();
            var placeholderComponent = new PlaceholderStudioComponent();

            placeholderComponent.SetName("New Placeholder");

            var addPlaceholderToRepositoryCommand = new AddPlaceholderToRepositoryCommand(placeholderComponent.ToDto());
            await addPlaceholderToRepositoryCommand.Process(virtualStudio);
        }
        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 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);
        }
예제 #11
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]);
        }
예제 #12
0
        public VirtualStudio GetVirtualStudio(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                return(null);
            }

            if (virtualStudios.ContainsKey(name))
            {
                return(virtualStudios[name].VirtualStudio);
            }
            else
            {
                var virtualStudio = new VirtualStudioWithArrangement(logger: loggerFactory.CreateLogger <VirtualStudio>());
                InitializeVirtualStudio(virtualStudio);

                var eventProcessor = virtualStudioUpdateListener is null ? null : new VirtualStudioEventProcessor(virtualStudio, name, virtualStudioUpdateListener);

                virtualStudios.Add(name, new VirtualStudioEntry {
                    VirtualStudio = virtualStudio, EventProcessor = eventProcessor
                });
                return(virtualStudio);
            }
        }
 public void Init()
 {
     virtualStudio = new VirtualStudioWithArrangement();
 }