Refactor IPAM model classes to use records for Address, Subnetwork, Vlan, Vrf, Section, Tag, Domain, Nameserver, and Session; enhance documentation and implement value equality for records.

This commit is contained in:
2026-01-19 17:25:18 +03:00
parent 694822f0d6
commit f56784f2aa
44 changed files with 1601 additions and 1905 deletions

View File

@@ -10,7 +10,7 @@ public class SessionTests
public void Constructor_WithCredentialsAuth_SetsAllProperties()
{
// Arrange
var authType = AuthType.credentials;
var authType = AuthType.Credentials;
var token = "test-token-123";
var appId = "myApp";
var url = "https://ipam.example.com";
@@ -21,7 +21,7 @@ public class SessionTests
var session = new Session(authType, token, appId, url, expires, credentials);
// Assert
session.AuthType.Should().Be(AuthType.credentials);
session.AuthType.Should().Be(AuthType.Credentials);
session.Token.Should().Be(token);
session.AppID.Should().Be(appId);
session.URL.Should().Be(url);
@@ -33,7 +33,7 @@ public class SessionTests
public void Constructor_WithTokenAuth_SetsAllProperties()
{
// Arrange
var authType = AuthType.token;
var authType = AuthType.Token;
var token = "static-api-token";
var appId = "apiApp";
var url = "https://ipam.test.com";
@@ -42,7 +42,7 @@ public class SessionTests
var session = new Session(authType, token, appId, url, null, null);
// Assert
session.AuthType.Should().Be(AuthType.token);
session.AuthType.Should().Be(AuthType.Token);
session.Token.Should().Be(token);
session.AppID.Should().Be(appId);
session.URL.Should().Be(url);
@@ -54,7 +54,7 @@ public class SessionTests
public void Token_CanBeModified()
{
// Arrange
var session = new Session(AuthType.credentials, "old-token", "app", "https://test.com", null, null);
var session = new Session(AuthType.Credentials, "old-token", "app", "https://test.com", null, null);
// Act
session.Token = "new-token";
@@ -67,7 +67,7 @@ public class SessionTests
public void Expires_CanBeModified()
{
// Arrange
var session = new Session(AuthType.credentials, "token", "app", "https://test.com", null, null);
var session = new Session(AuthType.Credentials, "token", "app", "https://test.com", null, null);
var newExpiry = new DateTime(2027, 1, 1);
// Act
@@ -78,15 +78,13 @@ public class SessionTests
}
[Fact]
public void ToString_ReturnsDefaultObjectString()
public void Record_Equality_WorksForSameValues()
{
// Arrange
var session = new Session(AuthType.token, "token", "app", "https://test.com", null, null);
var session1 = new Session(AuthType.Token, "token", "app", "https://test.com", null, null);
var session2 = new Session(AuthType.Token, "token", "app", "https://test.com", null, null);
// Act
var result = session.ToString();
// Assert
result.Should().Contain("PS.IPAM.Session");
// Assert - Records use value equality
session1.Should().Be(session2);
}
}