@@ -327,4 +327,103 @@ def test_animation_raises_if_no_container_instances_found(empty_workspace: Works
327
327
deployment_view .add_animation (web_application_instance , database_instance )
328
328
329
329
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