@@ -327,4 +327,103 @@ def test_animation_raises_if_no_container_instances_found(empty_workspace: Works
327327 deployment_view .add_animation (web_application_instance , database_instance )
328328
329329
330- # TODO: Removing
330+ def test_deployment_view_removing_infrastructure_node (empty_workspace : Workspace ):
331+ """Test removing an infrastructure node from the view."""
332+ model = empty_workspace .model
333+ views = empty_workspace .views
334+
335+ software_system = model .add_software_system ("Software System" )
336+ container = software_system .add_container ("Container" )
337+ parent_deployment_node = model .add_deployment_node ("Deployment Node" )
338+ child_deployment_node = parent_deployment_node .add_deployment_node ("Child Node" )
339+ infrastructure_node = child_deployment_node .add_infrastructure_node ("Infra Node" )
340+ container_instance = child_deployment_node .add_container (container )
341+
342+ deployment_view = views .create_deployment_view (
343+ software_system = software_system , key = "deployment" , description = "Description"
344+ )
345+ deployment_view .add_all_deployment_nodes ()
346+ assert len (deployment_view .element_views ) == 4
347+
348+ deployment_view .remove (infrastructure_node )
349+ assert len (deployment_view .element_views ) == 3
350+ assert not deployment_view .is_element_in_view (infrastructure_node )
351+ assert deployment_view .is_element_in_view (parent_deployment_node )
352+ assert deployment_view .is_element_in_view (child_deployment_node )
353+ assert deployment_view .is_element_in_view (container_instance )
354+
355+
356+ def test_deployment_view_removing_container_instance (empty_workspace : Workspace ):
357+ """Test removing a container instance from the view."""
358+ model = empty_workspace .model
359+ views = empty_workspace .views
360+
361+ software_system = model .add_software_system ("Software System" )
362+ container = software_system .add_container ("Container" )
363+ parent_deployment_node = model .add_deployment_node ("Deployment Node" )
364+ child_deployment_node = parent_deployment_node .add_deployment_node ("Child Node" )
365+ infrastructure_node = child_deployment_node .add_infrastructure_node ("Infra Node" )
366+ container_instance = child_deployment_node .add_container (container )
367+
368+ deployment_view = views .create_deployment_view (
369+ software_system = software_system , key = "deployment" , description = "Description"
370+ )
371+ deployment_view .add_all_deployment_nodes ()
372+ assert len (deployment_view .element_views ) == 4
373+
374+ deployment_view .remove (container_instance )
375+ assert len (deployment_view .element_views ) == 3
376+ assert deployment_view .is_element_in_view (infrastructure_node )
377+ assert deployment_view .is_element_in_view (parent_deployment_node )
378+ assert deployment_view .is_element_in_view (child_deployment_node )
379+ assert not deployment_view .is_element_in_view (container_instance )
380+
381+
382+ def test_deployment_view_removing_deployment_node_and_children (
383+ empty_workspace : Workspace ,
384+ ):
385+ """Test removing a deployment node from the view removes its child instances."""
386+ model = empty_workspace .model
387+ views = empty_workspace .views
388+
389+ software_system = model .add_software_system ("Software System" )
390+ container = software_system .add_container ("Container" )
391+ parent_deployment_node = model .add_deployment_node ("Deployment Node" )
392+ child_deployment_node = parent_deployment_node .add_deployment_node ("Child Node" )
393+ infrastructure_node = child_deployment_node .add_infrastructure_node ("Infra Node" )
394+ container_instance = child_deployment_node .add_container (container )
395+
396+ deployment_view = views .create_deployment_view (
397+ software_system = software_system , key = "deployment" , description = "Description"
398+ )
399+ deployment_view .add_all_deployment_nodes ()
400+ assert len (deployment_view .element_views ) == 4
401+
402+ deployment_view .remove (child_deployment_node )
403+ assert len (deployment_view .element_views ) == 1
404+ assert not deployment_view .is_element_in_view (infrastructure_node )
405+ assert deployment_view .is_element_in_view (parent_deployment_node )
406+ assert not deployment_view .is_element_in_view (child_deployment_node )
407+ assert not deployment_view .is_element_in_view (container_instance )
408+
409+
410+ def test_deployment_view_removing_parent_deployment_node (empty_workspace : Workspace ):
411+ """Test removing a parent deployment node from the view removes its children."""
412+ model = empty_workspace .model
413+ views = empty_workspace .views
414+
415+ software_system = model .add_software_system ("Software System" )
416+ container = software_system .add_container ("Container" )
417+ parent_deployment_node = model .add_deployment_node ("Deployment Node" )
418+ child_deployment_node = parent_deployment_node .add_deployment_node ("Child Node" )
419+ child_deployment_node .add_infrastructure_node ("Infra Node" )
420+ child_deployment_node .add_container (container )
421+
422+ deployment_view = views .create_deployment_view (
423+ software_system = software_system , key = "deployment" , description = "Description"
424+ )
425+ deployment_view .add_all_deployment_nodes ()
426+ assert len (deployment_view .element_views ) == 4
427+
428+ deployment_view .remove (parent_deployment_node )
429+ assert len (deployment_view .element_views ) == 0
0 commit comments