| File: Model\ConsoleLogsFiltersTests.cs | Web Access |
| Project: src\tests\Aspire.Dashboard.Tests\Aspire.Dashboard.Tests.csproj (Aspire.Dashboard.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Text.Json; using Aspire.Dashboard.Model; using Xunit; namespace Aspire.Dashboard.Tests.Model; public sealed class ConsoleLogsFiltersTests { [Fact] public void Serialize() { // Arrange var filters = new ConsoleLogsFilters { FilterAllLogsDate = new DateTime(2023, 1, 2, 3, 4, 5, DateTimeKind.Utc), FilterResourceLogsDates = new Dictionary<string, DateTime> { ["test-abc"] = new DateTime(2023, 1, 2, 3, 4, 5, DateTimeKind.Utc) } }; // Act var json = JsonSerializer.Serialize(filters); var deserialized = JsonSerializer.Deserialize<ConsoleLogsFilters>(json)!; // Assert Assert.Equal(filters.FilterAllLogsDate, deserialized.FilterAllLogsDate); Assert.Equivalent(filters.FilterResourceLogsDates, deserialized.FilterResourceLogsDates); } [Fact] public void WithResourceCleared_PreservesExistingFilters() { // Arrange var existingAllLogsDate = new DateTime(2023, 1, 1, 0, 0, 0, DateTimeKind.Utc); var existingResourceDate = new DateTime(2023, 1, 2, 0, 0, 0, DateTimeKind.Utc); var filters = new ConsoleLogsFilters { FilterAllLogsDate = existingAllLogsDate, FilterResourceLogsDates = new Dictionary<string, DateTime> { ["existing-resource"] = existingResourceDate } }; // Act var newResourceDate = new DateTime(2023, 1, 3, 0, 0, 0, DateTimeKind.Utc); var updatedFilters = filters.WithResourceCleared("new-resource", newResourceDate); // Assert - existing FilterAllLogsDate is preserved Assert.Equal(existingAllLogsDate, updatedFilters.FilterAllLogsDate); // Assert - existing resource filter is preserved Assert.True(updatedFilters.TryGetResourceFilterDate("existing-resource", out var existingDate)); Assert.Equal(existingResourceDate, existingDate); // Assert - new resource filter is added Assert.True(updatedFilters.TryGetResourceFilterDate("new-resource", out var newDate)); Assert.Equal(newResourceDate, newDate); } [Fact] public void TryGetResourceFilterDate_ReturnsFalse_WhenResourceNotFound() { // Arrange var filters = new ConsoleLogsFilters { FilterAllLogsDate = null, FilterResourceLogsDates = new Dictionary<string, DateTime>() }; // Act & Assert Assert.False(filters.TryGetResourceFilterDate("non-existent", out var filterDate)); Assert.Null(filterDate); } }