93 lines
2.5 KiB
C#
93 lines
2.5 KiB
C#
namespace PS.IPAM.Tests.Models;
|
|
|
|
using FluentAssertions;
|
|
using PS.IPAM;
|
|
using Xunit;
|
|
|
|
public class SessionTests
|
|
{
|
|
[Fact]
|
|
public void Constructor_WithCredentialsAuth_SetsAllProperties()
|
|
{
|
|
// Arrange
|
|
var authType = AuthType.credentials;
|
|
var token = "test-token-123";
|
|
var appId = "myApp";
|
|
var url = "https://ipam.example.com";
|
|
var expires = new DateTime(2026, 12, 31, 23, 59, 59);
|
|
var credentials = new object(); // Mock credentials
|
|
|
|
// Act
|
|
var session = new Session(authType, token, appId, url, expires, credentials);
|
|
|
|
// Assert
|
|
session.AuthType.Should().Be(AuthType.credentials);
|
|
session.Token.Should().Be(token);
|
|
session.AppID.Should().Be(appId);
|
|
session.URL.Should().Be(url);
|
|
session.Expires.Should().Be(expires);
|
|
session.Credentials.Should().BeSameAs(credentials);
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_WithTokenAuth_SetsAllProperties()
|
|
{
|
|
// Arrange
|
|
var authType = AuthType.token;
|
|
var token = "static-api-token";
|
|
var appId = "apiApp";
|
|
var url = "https://ipam.test.com";
|
|
|
|
// Act
|
|
var session = new Session(authType, token, appId, url, null, null);
|
|
|
|
// Assert
|
|
session.AuthType.Should().Be(AuthType.token);
|
|
session.Token.Should().Be(token);
|
|
session.AppID.Should().Be(appId);
|
|
session.URL.Should().Be(url);
|
|
session.Expires.Should().BeNull();
|
|
session.Credentials.Should().BeNull();
|
|
}
|
|
|
|
[Fact]
|
|
public void Token_CanBeModified()
|
|
{
|
|
// Arrange
|
|
var session = new Session(AuthType.credentials, "old-token", "app", "https://test.com", null, null);
|
|
|
|
// Act
|
|
session.Token = "new-token";
|
|
|
|
// Assert
|
|
session.Token.Should().Be("new-token");
|
|
}
|
|
|
|
[Fact]
|
|
public void Expires_CanBeModified()
|
|
{
|
|
// Arrange
|
|
var session = new Session(AuthType.credentials, "token", "app", "https://test.com", null, null);
|
|
var newExpiry = new DateTime(2027, 1, 1);
|
|
|
|
// Act
|
|
session.Expires = newExpiry;
|
|
|
|
// Assert
|
|
session.Expires.Should().Be(newExpiry);
|
|
}
|
|
|
|
[Fact]
|
|
public void ToString_ReturnsDefaultObjectString()
|
|
{
|
|
// Arrange
|
|
var session = new Session(AuthType.token, "token", "app", "https://test.com", null, null);
|
|
|
|
// Act
|
|
var result = session.ToString();
|
|
|
|
// Assert
|
|
result.Should().Contain("PS.IPAM.Session");
|
|
}
|
|
}
|