private bool ProcessSync(VirtualStudio virtualStudio) { var component = virtualStudio.FindStudioComponentById(componentId); if (component is null) { Error = new OperationError(ErrorType.NotFound, $"Component with ID {componentId} not found."); return(false); } if (component is PlaceholderStudioComponent placeholderStudioComponent) { var input = placeholderStudioComponent.Inputs.FirstOrDefault(i => i.Id == endpointId); if (input is null) { Error = new OperationError(ErrorType.NotFound, $"Input with ID {endpointId} not found on component with ID {componentId}."); return(false); } placeholderStudioComponent.RemoveInput(input); return(true); } else { Error = new OperationError(ErrorType.InvalidOperation, $"Component with ID {componentId} is not of type PlaceholderComponent."); return(false); } }
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 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 Creates_a_VirtualStudio_instance() { var virtualStudioManager = new VirtualStudioRepository(); string name = "testname"; VirtualStudio virtualStudio = virtualStudioManager.GetVirtualStudio(name); Assert.IsNotNull(virtualStudio); Assert.IsTrue(virtualStudioManager.Count == 1); }
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); }
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 Returns_existing_VirtualStudio_instance() { var virtualStudioManager = new VirtualStudioRepository(); string name = "testname"; VirtualStudio virtualStudio = virtualStudioManager.GetVirtualStudio(name); VirtualStudio existingVirtualStudio = virtualStudioManager.GetVirtualStudio(name); Assert.IsNotNull(existingVirtualStudio); Assert.AreEqual(virtualStudio, existingVirtualStudio); }
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); }
private bool ProcessSync(VirtualStudio virtualStudio) { var inputComponent = virtualStudio.Components.FirstOrDefault(c => c.Id == inputComponentId); if (inputComponent == null) { Error = new OperationError(ErrorType.NotFound, $"Cannot find component with ID {inputComponentId}."); return(false); } var input = inputComponent.Inputs.FirstOrDefault(i => i.Id == inputId); if (input is null) { Error = new OperationError(ErrorType.NotFound, $"Cannot find input with ID {inputId} on component with ID {inputComponentId}."); return(false); } if (virtualStudio.Connections.FirstOrDefault(c => c.Input == input) != null) { Error = new OperationError(ErrorType.InvalidOperation, $"Input with ID {inputId} on component with ID {inputComponentId} is already connected."); return(false); } var outputComponent = virtualStudio.Components.FirstOrDefault(c => c.Id == outputComponentId); if (outputComponent == null) { Error = new OperationError(ErrorType.NotFound, $"Cannot find component with ID {outputComponentId}."); return(false); } var output = outputComponent.Outputs.FirstOrDefault(o => o.Id == outputId); if (output is null) { Error = new OperationError(ErrorType.NotFound, $"Cannot find output with ID {outputId} on component with ID {outputComponentId}."); return(false); } if ((input.DataKind & output.DataKind) == DataKind.Nothing) { Error = new OperationError(ErrorType.InvalidOperation, "DataKind of output and input does not match."); return(false); } if (output.ConnectionType != input.ConnectionType) { Error = new OperationError(ErrorType.InvalidOperation, "ConnectionType of output and input does not match."); return(false); } if (virtualStudio.CreateConnection(output, input) is null) { Error = new OperationError(ErrorType.InvalidOperation, $"Cannot create connection for: Output {outputComponentId}:{outputId}, Input {inputComponentId}:{inputId}"); return(false); } return(true); }
private bool ProcessSync(VirtualStudio virtualStudio) { var connection = virtualStudio.Connections.FirstOrDefault(c => c.Id == connectionId); if (connection is null) { Error = new OperationError(ErrorType.NotFound, $"Connection with ID {connectionId} not found."); return(false); } virtualStudio.RemoveConnection(connection); return(true); }
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); }
private bool ProcessSync(VirtualStudio virtualStudio) { IStudioComponent studioComponent = virtualStudio.Components.FirstOrDefault(c => c.Id == componentId); if (studioComponent is null) { Error = new OperationError(ErrorType.NotFound, $"Component with ID {componentId} not found."); return(false); } virtualStudio.RemoveComponent(studioComponent); return(true); }
private bool ProcessSync(VirtualStudio virtualStudio) { var component = virtualStudio.FindStudioComponentById(componentId); if (component is null) { Error = new OperationError(ErrorType.NotFound, $"Component with ID {componentId} not found."); return(false); } return(ChangeProperty(component, propertyName, value)); }
public Task <VirtualStudioWithArrangementDto> Process(VirtualStudio virtualStudio) { if (virtualStudio is VirtualStudioWithArrangement virtualStudioWithArrangement) { var dto = virtualStudioWithArrangement.ToDto(); return(Task.FromResult(dto)); } else { Error = new OperationError(ErrorType.NotFound, "A VirtualStudioWithArrangement was not found."); return(Task.FromResult <VirtualStudioWithArrangementDto>(null)); } }
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); }
private bool ProcessSync(VirtualStudio virtualStudio) { if (virtualStudio is VirtualStudioWithArrangement studioArrangement) { ComponentNode node = studioArrangement.ComponentNodes.FirstOrDefault(c => c.Id == componentId); if (node is null) { Error = new OperationError(ErrorType.NotFound, $"ComponentNode with ID {componentId} not found."); return(false); } node.Position = new Position2D(x, y); return(true); } return(false); }
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 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); }
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 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 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]); }
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); }
private bool ProcessSync(VirtualStudio virtualStudio) { var connection = virtualStudio.Connections.FirstOrDefault(c => c.Id == connectionId); if (connection is null) { Error = new OperationError(ErrorType.NotFound, $"Connection with ID {connectionId} not found."); return(false); } if (connection.SetTargetState(state)) { return(true); } else { Error = new OperationError(ErrorType.InvalidArgument, $"TargetState cannot be set to {state}."); return(false); } }
private bool ProcessSync(VirtualStudio virtualStudio) { var component = virtualStudio.ComponentRepository.Placeholders.FirstOrDefault(p => p.Id == componentId); if (component is null) { Error = new OperationError(ErrorType.NotFound, $"Placeholder with ID {componentId} not found."); return(false); } if (component is PlaceholderStudioComponent placeholder) { virtualStudio.ComponentRepository.RemovePlaceholder(placeholder); return(true); } else { Error = new OperationError(ErrorType.NotFound, $"Component with ID {componentId} is not of type PlaceholderComponent."); return(false); } }
private bool ProcessSync(VirtualStudio virtualStudio) { var component = virtualStudio.FindStudioComponentById(componentId); if (component is null) { Error = new OperationError(ErrorType.NotFound, $"StudioComponent with ID {componentId} not found."); return(false); } if (component is PlaceholderStudioComponent placeholderComponent) { placeholderComponent.AddOutput(endpoint.Name, endpoint.DataKind, endpoint.ConnectionType); return(true); } else { Error = new OperationError(ErrorType.NotFound, $"StudioComponent with ID {component} is not a Placeholder."); return(false); } }
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); }
private bool ProcessSync(VirtualStudio virtualStudio) { if (!(virtualStudio is VirtualStudioWithArrangement virtualStudioWithArrangement)) { Error = new OperationError(ErrorType.InvalidOperation, $"Operation is not supported."); return(false); } var foundComponent = virtualStudioWithArrangement.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); } virtualStudioWithArrangement.AddComponent(foundComponent, new Position2D(x, y)); return(true); }