@@ -3,6 +3,7 @@ package ballot
33import (
44 "context"
55 "encoding/json"
6+ "errors"
67 "fmt"
78 "os/exec"
89 "slices"
@@ -1305,6 +1306,193 @@ func TestElection(t *testing.T) {
13051306 })
13061307}
13071308
1309+ func TestAgentWrapper_ServiceRegister (t * testing.T ) {
1310+ // Arrange
1311+ mockAgent := new (MockAgent )
1312+ agentWrapper := & AgentWrapper {agent : mockAgent }
1313+
1314+ serviceReg := & api.AgentServiceRegistration {
1315+ Name : "test_service" ,
1316+ }
1317+
1318+ expectedErr := errors .New ("registration error" )
1319+ mockAgent .On ("ServiceRegister" , serviceReg ).Return (expectedErr )
1320+
1321+ // Act
1322+ err := agentWrapper .ServiceRegister (serviceReg )
1323+
1324+ // Assert
1325+ assert .Equal (t , expectedErr , err )
1326+ mockAgent .AssertCalled (t , "ServiceRegister" , serviceReg )
1327+ }
1328+
1329+ func TestAgentWrapper_Service (t * testing.T ) {
1330+ // Arrange
1331+ mockAgent := new (MockAgent )
1332+ agentWrapper := & AgentWrapper {agent : mockAgent }
1333+
1334+ serviceID := "test_service_id"
1335+ queryOptions := & api.QueryOptions {}
1336+
1337+ expectedService := & api.AgentService {ID : serviceID }
1338+ expectedMeta := & api.QueryMeta {}
1339+ expectedErr := errors .New ("service error" )
1340+
1341+ mockAgent .On ("Service" , serviceID , queryOptions ).Return (expectedService , expectedMeta , expectedErr )
1342+
1343+ // Act
1344+ service , meta , err := agentWrapper .Service (serviceID , queryOptions )
1345+
1346+ // Assert
1347+ assert .Equal (t , expectedService , service )
1348+ assert .Equal (t , expectedMeta , meta )
1349+ assert .Equal (t , expectedErr , err )
1350+ mockAgent .AssertCalled (t , "Service" , serviceID , queryOptions )
1351+ }
1352+
1353+ func TestCatalogWrapper_Service (t * testing.T ) {
1354+ // Arrange
1355+ mockCatalog := new (MockCatalog )
1356+ catalogWrapper := & CatalogWrapper {catalog : mockCatalog }
1357+
1358+ serviceName := "test_service"
1359+ tag := "test_tag"
1360+ queryOptions := & api.QueryOptions {}
1361+
1362+ expectedServices := []* api.CatalogService {
1363+ {ServiceName : serviceName },
1364+ }
1365+ expectedMeta := & api.QueryMeta {}
1366+ expectedErr := errors .New ("catalog service error" )
1367+
1368+ mockCatalog .On ("Service" , serviceName , tag , queryOptions ).Return (expectedServices , expectedMeta , expectedErr )
1369+
1370+ // Act
1371+ services , meta , err := catalogWrapper .Service (serviceName , tag , queryOptions )
1372+
1373+ // Assert
1374+ assert .Equal (t , expectedServices , services )
1375+ assert .Equal (t , expectedMeta , meta )
1376+ assert .Equal (t , expectedErr , err )
1377+ mockCatalog .AssertCalled (t , "Service" , serviceName , tag , queryOptions )
1378+ }
1379+
1380+ func TestCatalogWrapper_Register (t * testing.T ) {
1381+ // Arrange
1382+ mockCatalog := new (MockCatalog )
1383+ catalogWrapper := & CatalogWrapper {catalog : mockCatalog }
1384+
1385+ registration := & api.CatalogRegistration {}
1386+ writeOptions := & api.WriteOptions {}
1387+
1388+ expectedMeta := & api.WriteMeta {}
1389+ expectedErr := errors .New ("register error" )
1390+
1391+ mockCatalog .On ("Register" , registration , writeOptions ).Return (expectedMeta , expectedErr )
1392+
1393+ // Act
1394+ meta , err := catalogWrapper .Register (registration , writeOptions )
1395+
1396+ // Assert
1397+ assert .Equal (t , expectedMeta , meta )
1398+ assert .Equal (t , expectedErr , err )
1399+ mockCatalog .AssertCalled (t , "Register" , registration , writeOptions )
1400+ }
1401+
1402+ func TestSessionWrapper_Create (t * testing.T ) {
1403+ // Arrange
1404+ mockSession := new (MockSession )
1405+ sessionWrapper := & SessionWrapper {session : mockSession }
1406+
1407+ sessionEntry := & api.SessionEntry {}
1408+ writeOptions := & api.WriteOptions {}
1409+
1410+ expectedID := "session_id"
1411+ expectedMeta := & api.WriteMeta {}
1412+ expectedErr := errors .New ("session create error" )
1413+
1414+ mockSession .On ("Create" , sessionEntry , writeOptions ).Return (expectedID , expectedMeta , expectedErr )
1415+
1416+ // Act
1417+ sessionID , meta , err := sessionWrapper .Create (sessionEntry , writeOptions )
1418+
1419+ // Assert
1420+ assert .Equal (t , expectedID , sessionID )
1421+ assert .Equal (t , expectedMeta , meta )
1422+ assert .Equal (t , expectedErr , err )
1423+ mockSession .AssertCalled (t , "Create" , sessionEntry , writeOptions )
1424+ }
1425+
1426+ func TestSessionWrapper_RenewPeriodic (t * testing.T ) {
1427+ // Arrange
1428+ mockSession := new (MockSession )
1429+ sessionWrapper := & SessionWrapper {session : mockSession }
1430+
1431+ initialTTL := "15s"
1432+ sessionID := "session_id"
1433+ writeOptions := & api.WriteOptions {}
1434+ doneCh := make (chan struct {})
1435+
1436+ expectedErr := errors .New ("renew error" )
1437+
1438+ mockSession .On ("RenewPeriodic" , initialTTL , sessionID , writeOptions , doneCh ).Return (expectedErr )
1439+
1440+ // Act
1441+ err := sessionWrapper .RenewPeriodic (initialTTL , sessionID , writeOptions , doneCh )
1442+
1443+ // Assert
1444+ assert .Equal (t , expectedErr , err )
1445+ mockSession .AssertCalled (t , "RenewPeriodic" , initialTTL , sessionID , writeOptions , doneCh )
1446+ }
1447+
1448+ func TestKVWrapper_Get (t * testing.T ) {
1449+ // Arrange
1450+ mockKV := new (MockKV )
1451+ kvWrapper := & KVWrapper {kv : mockKV }
1452+
1453+ key := "test_key"
1454+ queryOptions := & api.QueryOptions {}
1455+
1456+ expectedKVPair := & api.KVPair {Key : key }
1457+ expectedMeta := & api.QueryMeta {}
1458+ expectedErr := errors .New ("get error" )
1459+
1460+ mockKV .On ("Get" , key , queryOptions ).Return (expectedKVPair , expectedMeta , expectedErr )
1461+
1462+ // Act
1463+ kvPair , meta , err := kvWrapper .Get (key , queryOptions )
1464+
1465+ // Assert
1466+ assert .Equal (t , expectedKVPair , kvPair )
1467+ assert .Equal (t , expectedMeta , meta )
1468+ assert .Equal (t , expectedErr , err )
1469+ mockKV .AssertCalled (t , "Get" , key , queryOptions )
1470+ }
1471+
1472+ func TestKVWrapper_Acquire (t * testing.T ) {
1473+ // Arrange
1474+ mockKV := new (MockKV )
1475+ kvWrapper := & KVWrapper {kv : mockKV }
1476+
1477+ kvPair := & api.KVPair {Key : "test_key" }
1478+ writeOptions := & api.WriteOptions {}
1479+
1480+ expectedSuccess := true
1481+ expectedMeta := & api.WriteMeta {}
1482+ expectedErr := errors .New ("acquire error" )
1483+
1484+ mockKV .On ("Acquire" , kvPair , writeOptions ).Return (expectedSuccess , expectedMeta , expectedErr )
1485+
1486+ // Act
1487+ success , meta , err := kvWrapper .Acquire (kvPair , writeOptions )
1488+
1489+ // Assert
1490+ assert .Equal (t , expectedSuccess , success )
1491+ assert .Equal (t , expectedMeta , meta )
1492+ assert .Equal (t , expectedErr , err )
1493+ mockKV .AssertCalled (t , "Acquire" , kvPair , writeOptions )
1494+ }
1495+
13081496// MockConsulClient is a mock implementation of the api.Client interface
13091497type MockConsulClient struct {
13101498 mock.Mock
0 commit comments