From 4de4678a2f71d517d42a33c12a7fc50883d23706 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Thu, 12 Feb 2026 09:33:57 -0600 Subject: [PATCH] test: fix Cambium ePMP test Mox expectations Changed expect() to stub() in all discover_wireless_sensors/1 tests to handle multiple SNMP get calls: - Static sensor fetch calls Client.get() for CPU - ePMP mode detection calls Client.get() for wirelessInterfaceMode - Each sensor value fetch calls Client.get() (RSSI, SNR, Frequency, Clients) Using stub() allows unlimited calls vs expect() which enforces exactly one call, fixing Mox.UnexpectedCallError in all tests. Co-Authored-By: Claude Sonnet 4.5 --- test/towerops/snmp/profiles/vendors/cambium_test.exs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/towerops/snmp/profiles/vendors/cambium_test.exs b/test/towerops/snmp/profiles/vendors/cambium_test.exs index 96aeaa13..4706e233 100644 --- a/test/towerops/snmp/profiles/vendors/cambium_test.exs +++ b/test/towerops/snmp/profiles/vendors/cambium_test.exs @@ -113,7 +113,7 @@ defmodule Towerops.Snmp.Profiles.Vendors.CambiumTest do describe "discover_wireless_sensors/1 - ePMP Access Point" do test "discovers all wireless sensors for ePMP AP mode" do # Mock ePMP detection and sensor values - expect(SnmpMock, :get, fn _, oid, _ -> + stub(SnmpMock, :get, fn _, oid, _ -> cond do # wirelessInterfaceMode (1 = AP mode) oid == "1.3.6.1.4.1.17713.21.1.2.32.0" -> @@ -181,7 +181,7 @@ defmodule Towerops.Snmp.Profiles.Vendors.CambiumTest do describe "discover_wireless_sensors/1 - ePMP Subscriber Module" do test "discovers wireless sensors for ePMP SM mode (no client count)" do # Mock wirelessInterfaceMode (2 = SM mode) - expect(SnmpMock, :get, fn _, oid, _ -> + stub(SnmpMock, :get, fn _, oid, _ -> cond do oid == "1.3.6.1.4.1.17713.21.1.2.32.0" -> {:ok, 2} @@ -225,7 +225,7 @@ defmodule Towerops.Snmp.Profiles.Vendors.CambiumTest do describe "discover_wireless_sensors/1 - non-ePMP device" do test "returns only static sensors when device is not ePMP" do # Mock wirelessInterfaceMode check fails (not ePMP) - expect(SnmpMock, :get, fn _, oid, _ -> + stub(SnmpMock, :get, fn _, oid, _ -> case oid do "1.3.6.1.4.1.17713.21.1.2.32.0" -> {:error, :no_such_object} @@ -249,7 +249,7 @@ defmodule Towerops.Snmp.Profiles.Vendors.CambiumTest do describe "discover_wireless_sensors/1 - sensor filtering" do test "filters out sensors that fail to respond" do # Mock some sensors succeeding and some failing - expect(SnmpMock, :get, fn _, oid, _ -> + stub(SnmpMock, :get, fn _, oid, _ -> cond do oid == "1.3.6.1.4.1.17713.21.1.2.32.0" -> {:ok, 1} @@ -297,7 +297,7 @@ defmodule Towerops.Snmp.Profiles.Vendors.CambiumTest do describe "discover_wireless_sensors/1 - edge cases" do test "handles invalid mode value gracefully" do # Mock mode returns invalid value (not 1 or 2) - expect(SnmpMock, :get, fn _, oid, _ -> + stub(SnmpMock, :get, fn _, oid, _ -> case oid do "1.3.6.1.4.1.17713.21.1.2.32.0" -> {:ok, 99} @@ -318,7 +318,7 @@ defmodule Towerops.Snmp.Profiles.Vendors.CambiumTest do end test "returns empty list when all sensors fail" do - expect(SnmpMock, :get, fn _, _, _ -> + stub(SnmpMock, :get, fn _, _, _ -> {:error, :timeout} end)