diff --git a/test/services/test_netbox.py b/test/services/test_netbox.py
index 8c5c05e0e15f233a96feaeae951d949313bf500c..da5980d8327e38492c6b77a76093b27154a0b6e9 100644
--- a/test/services/test_netbox.py
+++ b/test/services/test_netbox.py
@@ -1,88 +1,67 @@
 """
 Unit tests for testing the netbox client
 """
-import uuid
+import os
+import json
 from os import PathLike
-from unittest.mock import patch, Mock
-
-import responses
+from unittest.mock import patch
 
 from gso.services.netbox_client import NetBoxClient
+from gso.products.product_blocks.site import SiteTier
 
 BASE_URL = "https://127.0.0.1:8000"
 
 
-def _create_device(id: int, name: str) -> dict:
-    device = {"id": id, "name": name}
-    return device
-
-
-def _create_interface(id: int, name: str) -> dict:
-    return {"id": id, "name": name}
+def _load_fixture(filename):
+    current_directory = os.path.dirname(os.path.abspath(__file__))
+    # Build the full path to the fixture file
+    fixture_path = os.path.join(current_directory, 'fixtures', filename)
 
+    # Load and return the JSON data
+    with open(fixture_path, 'r') as f:
+        return json.load(f)
 
-def _create_list_interfaces(num_iface: int) -> list:
-    list_iface = list()
-    for i in range(num_iface):
-        name = f"et-0/0/{i}"
-        id = i + 1
-        iface = _create_interface(id, name)
-        list_iface.append(iface)
-    return list_iface
 
+def _get_mock_device():
+    return _load_fixture("device.json")
 
-@responses.activate
-def test_create_device(data_config_filename: PathLike):
-    device_name = "mx1.lab.office.geant.net"
-    device_id = 10
-    # device_manufacturer = "Nokia"
-    device_site = "GEANT"
-    # device_role = "Router"
 
-    # Create a mock device
-    device = _create_device(device_id, device_name)
+def _get_mock_device_type():
+    return _load_fixture("device_type.json")
 
-    # Define response
-    endpoint = f"{BASE_URL}/api/dcim/devices/?limit=0"
 
-    responses.add(responses.POST, endpoint, json=device, status=200)
+def _get_mock_device_role():
+    return _load_fixture("device_role.json")
 
-    result = NetBoxClient().create_device(device_name, device_site)
-    assert result is not None
 
+def _get_mock_site():
+    return _load_fixture("site.json")
 
-@responses.activate
-def test_get_all_interfaces(data_config_filename: PathLike):
-    num_iface = 3
-    list_iface = _create_list_interfaces(num_iface)
-    endpoint = f"{BASE_URL}/api/dcim/devices/?limit=0"
 
-    responses.add(responses.GET, endpoint, json=list_iface, status=200)
+def _get_mock_device_bay():
+    return _load_fixture("device_bay.json")
 
-    result = NetBoxClient().get_all_devices()
 
+def test_create_device(data_config_filename: PathLike):
+    device_name = "mx1.lab.geant.net"
+    site_tier = SiteTier.TIER1
+
+    mock_device = _get_mock_device()
+    mock_device["name"] = device_name
+    mock_device_role = _get_mock_device_role()
+    mock_device_type = _get_mock_device_type()
+    mock_site = _get_mock_site()
+    mock_device_bay = _get_mock_device_bay()
+
+    # Define mock calls
+    with patch('gso.services.netbox_client.pynetbox.api') as mock_api:
+        mock_api.return_value.dcim.device_types.get.return_value = mock_device_type
+        mock_api.return_value.dcim.device_roles.get.return_value = mock_device_role
+        mock_api.return_value.dcim.sites.get.return_value = mock_site
+        mock_api.return_value.dcim.devices.create.return_value = mock_device
+        mock_api.return_value.dcim.module_bays.filter.return_value = mock_device_bay
+        mock_api.return_value.dcim.module_types.get.return_value = {"id": 1, "name": "eth-0/0/1"}
+        mock_api.return_value.dcim.module_types.create.return_value = {"id": 1, "name": "eth-0/0/1"}
+
+    result = NetBoxClient().create_device(device_name, site_tier)
     assert result is not None
-    assert len(result) == num_iface
-
-
-@patch("gso.services.netbox_client.Router.from_subscription")
-@patch("gso.services.netbox_client.pynetbox.api")
-def test_get_available_lags(mock_api, mock_from_subscription, data_config_filename: PathLike):
-    router_id = uuid.uuid4()
-    feasible_lags = [f"LAG-{i}" for i in range(1, 10)]
-
-    # Mock the pynetbox API instance
-    mock_netbox = mock_api.return_value
-    mock_filter = mock_netbox.dcim.interfaces.filter
-    mock_filter.return_value = [{"name": f"LAG-{i}", "type": "lag"} for i in range(1, 4)]
-
-    # Mock the Router.from_subscription method
-    mock_subscription = mock_from_subscription.return_value
-    mock_router = mock_subscription.router
-    mock_router.router_fqdn = "test_router"
-
-    netbox_client = NetBoxClient()
-    result = netbox_client.get_available_lags(router_id)
-
-    # Check the result of the function
-    assert result == [lag for lag in feasible_lags if lag not in [f"LAG-{i}" for i in range(1, 4)]]