From 5fddea409be59891138a7e769f471c7139309e7f Mon Sep 17 00:00:00 2001
From: Neda Moeini <neda.moeini@geant.org>
Date: Fri, 8 Nov 2024 11:02:13 +0100
Subject: [PATCH] Add unit test for modify L2Circuits WF

---
 .../l2_circuit/test_modify_layer_2_circuit.py | 73 +++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100644 test/workflows/l2_circuit/test_modify_layer_2_circuit.py

diff --git a/test/workflows/l2_circuit/test_modify_layer_2_circuit.py b/test/workflows/l2_circuit/test_modify_layer_2_circuit.py
new file mode 100644
index 00000000..aee47662
--- /dev/null
+++ b/test/workflows/l2_circuit/test_modify_layer_2_circuit.py
@@ -0,0 +1,73 @@
+import pytest
+from orchestrator.types import SubscriptionLifecycle
+
+from gso.products import ProductName
+from gso.products.product_blocks.layer_2_circuit import Layer2CircuitType
+from gso.products.product_types.layer_2_circuit import Layer2Circuit
+from test.workflows import assert_complete, extract_state, run_workflow
+
+
+@pytest.mark.parametrize("layer_2_circuit_service_type", [ProductName.GEANT_PLUS, ProductName.EXPRESSROUTE])
+@pytest.mark.workflow()
+def test_modify_layer_2_circuit_change_policer_bandwidth(
+        layer_2_circuit_service_type,
+        layer_2_circuit_subscription_factory,
+        faker,
+        partner_factory,
+        data_config_filename,
+):
+    subscription_id = layer_2_circuit_subscription_factory(layer_2_circuit_service_type=layer_2_circuit_service_type)
+    subscription = Layer2Circuit.from_subscription(subscription_id)
+    input_form_data = [
+        {"subscription_id": subscription_id},
+        {
+            "tt_number": faker.tt_number(),
+            "layer_2_circuit_type": Layer2CircuitType.TAGGED,
+            "policer_enabled": False,
+        },
+        {
+            "vlan_range_lower_bound": subscription.layer_2_circuit.vlan_range_lower_bound,
+            "vlan_range_upper_bound": subscription.layer_2_circuit.vlan_range_upper_bound,
+            "policer_bandwidth": None,
+        }
+    ]
+    result, _, _ = run_workflow("modify_layer_2_circuit", input_form_data)
+    assert_complete(result)
+    assert subscription.status == SubscriptionLifecycle.ACTIVE
+    assert subscription.layer_2_circuit.policer_enabled is False
+    assert subscription.layer_2_circuit.bandwidth is None
+
+
+@pytest.mark.parametrize("layer_2_circuit_service_type", [ProductName.GEANT_PLUS, ProductName.EXPRESSROUTE])
+@pytest.mark.workflow()
+def test_modify_layer_2_circuit_change_circuit_type(
+        layer_2_circuit_service_type,
+        layer_2_circuit_subscription_factory,
+        faker,
+        partner_factory,
+        data_config_filename,
+):
+    subscription_id = layer_2_circuit_subscription_factory(layer_2_circuit_service_type=layer_2_circuit_service_type)
+    subscription = Layer2Circuit.from_subscription(subscription_id)
+    input_form_data = [
+        {"subscription_id": subscription_id},
+        {
+            "tt_number": faker.tt_number(),
+            "layer_2_circuit_type": Layer2CircuitType.UNTAGGED,
+        },
+        {
+            "vlan_range_lower_bound": None,
+            "vlan_range_upper_bound": None,
+            "policer_bandwidth": subscription.layer_2_circuit.bandwidth,
+        }
+    ]
+    result, _, _ = run_workflow("modify_layer_2_circuit", input_form_data)
+    assert_complete(result)
+    state = extract_state(result)
+    subscription = Layer2Circuit.from_subscription(state["subscription_id"])
+    assert subscription.status == SubscriptionLifecycle.ACTIVE
+    assert subscription.layer_2_circuit.vlan_range_lower_bound is None
+    assert subscription.layer_2_circuit.vlan_range_upper_bound is None
+    assert subscription.layer_2_circuit.layer_2_circuit_type == Layer2CircuitType.UNTAGGED
+    for layer_2_circuit_side in subscription.layer_2_circuit.layer_2_circuit_sides:
+        assert layer_2_circuit_side.sbp.is_tagged is False
-- 
GitLab