From 6c34b4fe28a5bed9e646ecf29d9cc386c42e8ff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Fri, 24 May 2024 21:40:35 +0300 Subject: [PATCH 01/25] chore: Update GetSelectedRows parameter name in AGGrid.razor.cs --- SiemensIXBlazor/Components/AGGrid/AGGrid.razor.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SiemensIXBlazor/Components/AGGrid/AGGrid.razor.cs b/SiemensIXBlazor/Components/AGGrid/AGGrid.razor.cs index b9564f5..a8bf2f5 100644 --- a/SiemensIXBlazor/Components/AGGrid/AGGrid.razor.cs +++ b/SiemensIXBlazor/Components/AGGrid/AGGrid.razor.cs @@ -35,9 +35,9 @@ public partial class AGGrid return await JSRuntime.InvokeAsync("agGridInterop.createGrid", dotNetHelper, Id, JsonConvert.SerializeObject(options)); } - public async Task GetSelectedRows(IJSObjectReference gird) + public async Task GetSelectedRows(IJSObjectReference grid) { - return await JSRuntime.InvokeAsync("agGridInterop.getSelectedRows", gird); + return await JSRuntime.InvokeAsync("agGridInterop.getSelectedRows", grid); } From 0bbf6891575e57a939b1a0b21024cf409f7ec9fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Fri, 24 May 2024 21:40:45 +0300 Subject: [PATCH 02/25] chore: Add unit tests for ActionCard component --- SiemensIXBlazor.Tests/ActionCardTests.cs | 69 ++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 SiemensIXBlazor.Tests/ActionCardTests.cs diff --git a/SiemensIXBlazor.Tests/ActionCardTests.cs b/SiemensIXBlazor.Tests/ActionCardTests.cs new file mode 100644 index 0000000..3f2edf6 --- /dev/null +++ b/SiemensIXBlazor.Tests/ActionCardTests.cs @@ -0,0 +1,69 @@ +using Bunit; +using SiemensIXBlazor.Components; +using SiemensIXBlazor.Enums.PushCard; + +namespace SiemensIXBlazor.Tests +{ + public class ActionCardTests: TestContextBase + { + [Fact] + public void ComponentRendersWithoutCrashing() + { + // Arrange + var cut = RenderComponent(); + + // Assert + cut.MarkupMatches(""); + } + + [Fact] + public void IconPropertyIsSetCorrectly() + { + // Arrange + var cut = RenderComponent(parameters => parameters.Add(p => p.Icon, "testIcon")); + + // Assert + Assert.Equal("testIcon", cut.Instance.Icon); + } + + [Fact] + public void HeadingPropertyIsSetCorrectly() + { + // Arrange + var cut = RenderComponent(parameters => parameters.Add(p => p.Heading, "testHeading")); + + // Assert + Assert.Equal("testHeading", cut.Instance.Heading); + } + + [Fact] + public void SubHeadingPropertyIsSetCorrectly() + { + // Arrange + var cut = RenderComponent(parameters => parameters.Add(p => p.SubHeading, "testSubHeading")); + + // Assert + Assert.Equal("testSubHeading", cut.Instance.SubHeading); + } + + [Fact] + public void SelectedPropertyIsSetCorrectly() + { + // Arrange + var cut = RenderComponent(parameters => parameters.Add(p => p.Selected, true)); + + // Assert + Assert.True(cut.Instance.Selected); + } + + [Fact] + public void VariantPropertyIsSetCorrectly() + { + // Arrange + var cut = RenderComponent(parameters => parameters.Add(p => p.Variant, PushCardVariant.insight)); + + // Assert + Assert.Equal(PushCardVariant.insight, cut.Instance.Variant); + } + } +} \ No newline at end of file From bad88f83eb28259eaf4bd4bf5f5a9a2e7ced673f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Fri, 24 May 2024 21:40:57 +0300 Subject: [PATCH 03/25] chore: Rename BlindTest.cs to BlindTests.cs --- .../{BlindTest.cs => BlindTests.cs} | 21 +------------------ 1 file changed, 1 insertion(+), 20 deletions(-) rename SiemensIXBlazor.Tests/{BlindTest.cs => BlindTests.cs} (69%) diff --git a/SiemensIXBlazor.Tests/BlindTest.cs b/SiemensIXBlazor.Tests/BlindTests.cs similarity index 69% rename from SiemensIXBlazor.Tests/BlindTest.cs rename to SiemensIXBlazor.Tests/BlindTests.cs index dd8dbef..b3410cd 100644 --- a/SiemensIXBlazor.Tests/BlindTest.cs +++ b/SiemensIXBlazor.Tests/BlindTests.cs @@ -2,28 +2,11 @@ using SiemensIXBlazor.Enums.Blind; using Bunit; using Microsoft.AspNetCore.Components; -using Microsoft.JSInterop; -using Moq; -using Microsoft.Extensions.DependencyInjection; namespace SiemensIXBlazor.Tests { - public class BlindTest: TestContext + public class BlindTests: TestContextBase { - private readonly Mock _jsRuntimeMock; - private readonly Mock _jsObjectReferenceMock; - - public BlindTest() - { - _jsRuntimeMock = new Mock(); - _jsObjectReferenceMock = new Mock(); - - // Mock of module import for JSRuntime - _jsRuntimeMock.Setup(x => x.InvokeAsync("import", It.IsAny())) - .Returns(new ValueTask(_jsObjectReferenceMock.Object)); - Services.AddSingleton(_jsRuntimeMock.Object); - } - [Fact] public void ComponentRendersWithoutCrashing() { @@ -79,8 +62,6 @@ public void CollapsedChangedEventTriggeredCorrectly() { // Arrange var eventTriggered = false; - _jsRuntimeMock.Setup(x => x.InvokeAsync(It.IsAny(), It.IsAny())) - .Returns(new ValueTask(true)); var cut = RenderComponent(parameters => parameters.Add(p => p.CollapsedChangedEvent, EventCallback.Factory.Create(this, () => eventTriggered = true))); // Act From 7ddcc441efca33a8c40cc20f585a5fe0a46d02f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Fri, 24 May 2024 21:41:10 +0300 Subject: [PATCH 04/25] chore: Refactor AboutMenuItemTest to use TestContextBase --- .../About/AboutMenuItemTest.cs | 20 +------------------ 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/SiemensIXBlazor.Tests/About/AboutMenuItemTest.cs b/SiemensIXBlazor.Tests/About/AboutMenuItemTest.cs index 4b53b9d..51db3e9 100644 --- a/SiemensIXBlazor.Tests/About/AboutMenuItemTest.cs +++ b/SiemensIXBlazor.Tests/About/AboutMenuItemTest.cs @@ -1,29 +1,11 @@ using Bunit; using Microsoft.AspNetCore.Components; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.JSInterop; -using Moq; using SiemensIXBlazor.Components.About; namespace SiemensIXBlazor.Tests.About { - public class AboutMenuItemTest: TestContext + public class AboutMenuItemTest: TestContextBase { - private readonly Mock _jsRuntimeMock; - private readonly Mock _jsObjectReferenceMock; - - public AboutMenuItemTest() - { - _jsRuntimeMock = new Mock(); - _jsObjectReferenceMock = new Mock(); - - // Mock of module import for JSRuntime - _jsRuntimeMock.Setup(x => x.InvokeAsync("import", It.IsAny())) - .Returns(new ValueTask(_jsObjectReferenceMock.Object)); - Services.AddSingleton(_jsRuntimeMock.Object); - } - - [Fact] public void ComponentRendersWithoutCrashing() { From 2078bd1dd84bfc82187293960368ea0b120ece3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Fri, 24 May 2024 21:41:16 +0300 Subject: [PATCH 05/25] Refactor AboutMenuNewsTest to use TestContextBase --- .../About/AboutMenuNewsTest.cs | 20 +------------------ 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/SiemensIXBlazor.Tests/About/AboutMenuNewsTest.cs b/SiemensIXBlazor.Tests/About/AboutMenuNewsTest.cs index 258e867..81ce005 100644 --- a/SiemensIXBlazor.Tests/About/AboutMenuNewsTest.cs +++ b/SiemensIXBlazor.Tests/About/AboutMenuNewsTest.cs @@ -1,30 +1,12 @@ using Bunit; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.JSInterop; -using Moq; using SiemensIXBlazor.Components.About; namespace SiemensIXBlazor.Tests.About { - public class AboutMenuNewsTest: TestContext + public class AboutMenuNewsTest: TestContextBase { - private readonly Mock _jsRuntimeMock; - private readonly Mock _jsObjectReferenceMock; - - public AboutMenuNewsTest() - { - _jsRuntimeMock = new Mock(); - _jsObjectReferenceMock = new Mock(); - - // Mock of module import for JSRuntime - _jsRuntimeMock.Setup(x => x.InvokeAsync("import", It.IsAny())) - .Returns(new ValueTask(_jsObjectReferenceMock.Object)); - Services.AddSingleton(_jsRuntimeMock.Object); - } - - [Fact] public void ComponentRendersWithoutCrashing() { From cfb2890bcd717a474fbed40d423e1ecfb8de67d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Fri, 24 May 2024 21:41:22 +0300 Subject: [PATCH 06/25] chore: Refactor AboutMenuTest to use TestContextBase --- SiemensIXBlazor.Tests/About/AboutMenuTest.cs | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/SiemensIXBlazor.Tests/About/AboutMenuTest.cs b/SiemensIXBlazor.Tests/About/AboutMenuTest.cs index c016417..e7209fa 100644 --- a/SiemensIXBlazor.Tests/About/AboutMenuTest.cs +++ b/SiemensIXBlazor.Tests/About/AboutMenuTest.cs @@ -1,30 +1,12 @@ using Bunit; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.JSInterop; -using Moq; using SiemensIXBlazor.Components.About; namespace SiemensIXBlazor.Tests.About { - public class AboutMenuTest: TestContext + public class AboutMenuTest: TestContextBase { - private readonly Mock _jsRuntimeMock; - private readonly Mock _jsObjectReferenceMock; - - public AboutMenuTest() - { - _jsRuntimeMock = new Mock(); - _jsObjectReferenceMock = new Mock(); - - // Mock of module import for JSRuntime - _jsRuntimeMock.Setup(x => x.InvokeAsync("import", It.IsAny())) - .Returns(new ValueTask(_jsObjectReferenceMock.Object)); - Services.AddSingleton(_jsRuntimeMock.Object); - } - - [Fact] public void ComponentRendersWithoutCrashing() { From ad41b445c0c84d8cc8f246b8351b7a29eb704c2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Fri, 24 May 2024 21:41:26 +0300 Subject: [PATCH 07/25] chore: Add unit tests for AGGrid component --- SiemensIXBlazor.Tests/AGGrid/AGGridTests.cs | 103 ++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 SiemensIXBlazor.Tests/AGGrid/AGGridTests.cs diff --git a/SiemensIXBlazor.Tests/AGGrid/AGGridTests.cs b/SiemensIXBlazor.Tests/AGGrid/AGGridTests.cs new file mode 100644 index 0000000..fd8e435 --- /dev/null +++ b/SiemensIXBlazor.Tests/AGGrid/AGGridTests.cs @@ -0,0 +1,103 @@ +using System.Diagnostics; +using Bunit; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.JSInterop; +using Moq; +using SiemensIXBlazor.Components.AGGrid; + +namespace SiemensIXBlazor.Tests +{ + public class AGGridTests : TestContextBase + { + [Fact] + public void ComponentRendersWithoutCrashing() + { + // Arrange + var cut = RenderComponent(); + + // Assert + cut.MarkupMatches("
"); + } + + [Fact] + public void OnCellClickedPropertyIsSetCorrectly() + { + // Arrange + var eventTriggered = false; + var cut = RenderComponent(parameters => parameters.Add(p => p.OnCellClicked, EventCallback.Factory.Create(this, () => eventTriggered = true))); + + // Act + cut.Instance.OnCellClicked.InvokeAsync(true); + + //Assert + Assert.True(eventTriggered); + } + + [Fact] + public void IdPropertyIsSetCorrectly() + { + // Arrange + var cut = RenderComponent(parameters => parameters.Add(p => p.Id, "testId")); + + // Assert + Assert.Equal("testId", cut.Instance.Id); + } + + [Fact] + public async Task CreateGrid_ReturnsNull_WhenIdIsEmpty() + { + // Arrange + var grid = new AGGrid(); + + // Act + var result = await grid.CreateGrid(new GridOptions()); + + // Assert + Assert.Null(result); + } + + [Fact] + public async Task CreateGrid_ReturnsJSObjectReference_WhenIdIsNotEmpty() + { + // Arrange + var gridOptions = new GridOptions(); + Mock jsRuntimeMock = new(); + Mock jsObjectReferenceMock = new(); + + // Mock of module import for JSRuntime + jsRuntimeMock.Setup(x => x.InvokeAsync("agGridInterop.createGrid", It.IsAny())) + .Returns(new ValueTask(jsObjectReferenceMock.Object)); + Services.AddSingleton(jsRuntimeMock.Object); + + var cut = RenderComponent(parameters => parameters.Add(p => p.Id, "testId")); + + // Act + var result = await cut.Instance.CreateGrid(gridOptions); + + // Assert + Assert.NotNull(result); + jsRuntimeMock.Verify(x => x.InvokeAsync("agGridInterop.createGrid", It.IsAny()), Times.Once); + } + + [Fact] + public async Task GetSelectedRows_ReturnsObject() + { + // Arrange + var jsRuntimeMock = new Mock(); + Services.AddSingleton(jsRuntimeMock.Object); + var cut = RenderComponent(parameters => parameters.Add(p => p.Id, "testId")); + var jsObjectReferenceMock = new Mock(); + jsRuntimeMock.Setup(x => x.InvokeAsync("agGridInterop.getSelectedRows", It.IsAny())) + .ReturnsAsync(new object()); + + + // Act + var result = await cut.Instance.GetSelectedRows(jsObjectReferenceMock.Object); + + // Assert + Assert.NotNull(result); + jsRuntimeMock.Verify(x => x.InvokeAsync("agGridInterop.getSelectedRows", It.IsAny()), Times.Once); + } + } +} \ No newline at end of file From 4479f7d2d2633cf6ba469ddbb46c875eda707f2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Fri, 24 May 2024 22:08:13 +0300 Subject: [PATCH 08/25] chore: Update breakpoints serialization in Application.razor --- SiemensIXBlazor/Components/Application/Application.razor | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SiemensIXBlazor/Components/Application/Application.razor b/SiemensIXBlazor/Components/Application/Application.razor index 9b11b49..58fb201 100644 --- a/SiemensIXBlazor/Components/Application/Application.razor +++ b/SiemensIXBlazor/Components/Application/Application.razor @@ -11,11 +11,12 @@ @namespace SiemensIXBlazor.Components @inherits IXBaseComponent @using Microsoft.JSInterop +@using System.Text.Json @inject IJSRuntime JSRuntime From b554881a76713cbd1936bd73a212a8fb8ec0c0c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Fri, 24 May 2024 22:08:19 +0300 Subject: [PATCH 09/25] chore: Add unit tests for Application component --- SiemensIXBlazor.Tests/ApplicationTests.cs | 40 +++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 SiemensIXBlazor.Tests/ApplicationTests.cs diff --git a/SiemensIXBlazor.Tests/ApplicationTests.cs b/SiemensIXBlazor.Tests/ApplicationTests.cs new file mode 100644 index 0000000..4abd085 --- /dev/null +++ b/SiemensIXBlazor.Tests/ApplicationTests.cs @@ -0,0 +1,40 @@ +using Bunit; +using SiemensIXBlazor.Components; +using SiemensIXBlazor.Objects.Application; + +namespace SiemensIXBlazor.Tests +{ + public class ApplicationTests : TestContextBase + { + [Fact] + public void ApplicationRendersWithoutCrashing() + { + // Arrange + var cut = RenderComponent(parameters => { + parameters.Add(p => p.Id, "testId"); + parameters.Add(p => p.Breakpoints, ["sm", "md", "lg"]); + parameters.Add(p => p.ForceBreakpoint, Enums.ForceBreakpoint.lg); + parameters.Add(p => p.Theme, "testTheme"); + parameters.Add(p => p.ThemeSystemAppearance, true); + }); + + // Assert + cut.MarkupMatches(""); + } + + [Fact] + public void AppSwitchConfig_SetsValueAndCallsInitialParameter() + { + // Arrange + var cut = RenderComponent(); + var config = new AppSwitchConfig(); + + // Act + cut.Instance.AppSwitchConfig = config; + + // Assert + Assert.Equal(config, cut.Instance.AppSwitchConfig); + } + + } +} \ No newline at end of file From 477f5be7e47ce3586bd5050ffd26b940a6cd5994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Sat, 25 May 2024 17:08:04 +0300 Subject: [PATCH 10/25] chore: Add unit tests for ApplicationHeader component --- .../ApplicationHeaderTests.cs | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 SiemensIXBlazor.Tests/ApplicationHeaderTests.cs diff --git a/SiemensIXBlazor.Tests/ApplicationHeaderTests.cs b/SiemensIXBlazor.Tests/ApplicationHeaderTests.cs new file mode 100644 index 0000000..8d3ccdb --- /dev/null +++ b/SiemensIXBlazor.Tests/ApplicationHeaderTests.cs @@ -0,0 +1,37 @@ +using Bunit; +using SiemensIXBlazor.Components; + +namespace SiemensIXBlazor.Tests +{ + public class ApplicationHeaderTests : TestContextBase + { + [Fact] + public void ApplicationRendersWithoutCrashing() + { + // Arrange + var cut = RenderComponent(parameters => { + parameters.Add(p => p.Name, "testName"); + }); + + // Assert + cut.MarkupMatches(""); + } + + [Fact] + public void ApplicationHeaderRendersChildContent() + { + // Arrange + var expectedContent = "Expected content"; + + // Act + var cut = RenderComponent(parameters => parameters + .Add(p => p.ChildContent, builder => + { + builder.AddContent(0, expectedContent); + })); + + // Assert + Assert.Contains(expectedContent, cut.Markup); + } + } +} \ No newline at end of file From e7fb02bc10f0fbbc18528832a3c7840518feb06b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Sat, 25 May 2024 17:09:53 +0300 Subject: [PATCH 11/25] test: Add unit test for Avatar component --- SiemensIXBlazor.Tests/AvatarTests.cs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 SiemensIXBlazor.Tests/AvatarTests.cs diff --git a/SiemensIXBlazor.Tests/AvatarTests.cs b/SiemensIXBlazor.Tests/AvatarTests.cs new file mode 100644 index 0000000..3c3be0c --- /dev/null +++ b/SiemensIXBlazor.Tests/AvatarTests.cs @@ -0,0 +1,21 @@ +using Bunit; +using SiemensIXBlazor.Components.Avatar; + +namespace SiemensIXBlazor.Tests +{ + public class AvatarTests : TestContextBase + { + [Fact] + public void AvatarRendersWithoutCrashing() + { + // Arrange + var cut = RenderComponent(parameters => { + parameters.Add(p => p.Image, "testImage"); + parameters.Add(p => p.Initials, "testInitials"); + }); + + // Assert + cut.MarkupMatches(""); + } + } +} \ No newline at end of file From 8f90cbe9d83572cc91d9669b159c29729b4583d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Sat, 25 May 2024 17:23:38 +0300 Subject: [PATCH 12/25] test: Add unit test for BasicNavigation component --- SiemensIXBlazor.Tests/BasicNavigationTests.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 SiemensIXBlazor.Tests/BasicNavigationTests.cs diff --git a/SiemensIXBlazor.Tests/BasicNavigationTests.cs b/SiemensIXBlazor.Tests/BasicNavigationTests.cs new file mode 100644 index 0000000..b508922 --- /dev/null +++ b/SiemensIXBlazor.Tests/BasicNavigationTests.cs @@ -0,0 +1,40 @@ +using Bunit; +using SiemensIXBlazor.Components.BasicNavigation; +using SiemensIXBlazor.Enums.BasicNavigation; + +namespace SiemensIXBlazor.Tests +{ + public class BasicNavigationTests : TestContextBase + { + [Fact] + public void BasicNavigationRendersWithoutCrashing() + { + // Arrange + var cut = RenderComponent(parameters => { + parameters.Add(p => p.ApplicationName, "testApplicationName"); + parameters.Add(p => p.HideHeader, true); + parameters.Add(p => p.ForceBreakpoint, Breakpoint.Md); + }); + + // Assert + cut.MarkupMatches(""); + } + + [Fact] + public void BasicNavigationRendersChildContent() + { + // Arrange + var expectedContent = "Expected content"; + + // Act + var cut = RenderComponent(parameters => parameters + .Add(p => p.ChildContent, builder => + { + builder.AddContent(0, expectedContent); + })); + + // Assert + Assert.Contains(expectedContent, cut.Markup); + } + } +} \ No newline at end of file From 3436c918d5ffd46931304221dbd8a3c0c4a63c10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Sat, 25 May 2024 17:23:45 +0300 Subject: [PATCH 13/25] chore: Rename test method in ApplicationHeaderTests.cs for clarity --- SiemensIXBlazor.Tests/ApplicationHeaderTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SiemensIXBlazor.Tests/ApplicationHeaderTests.cs b/SiemensIXBlazor.Tests/ApplicationHeaderTests.cs index 8d3ccdb..a147014 100644 --- a/SiemensIXBlazor.Tests/ApplicationHeaderTests.cs +++ b/SiemensIXBlazor.Tests/ApplicationHeaderTests.cs @@ -6,7 +6,7 @@ namespace SiemensIXBlazor.Tests public class ApplicationHeaderTests : TestContextBase { [Fact] - public void ApplicationRendersWithoutCrashing() + public void ApplicationHeaderRendersWithoutCrashing() { // Arrange var cut = RenderComponent(parameters => { From 77b3f944ef40a418c4b934ae36cb97591095e865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Sun, 26 May 2024 14:22:18 +0300 Subject: [PATCH 14/25] chore: Add Breadcrumb component unit tests and test context base classes --- .../Breadcrumb/BreadcrumbItemTests.cs | 18 +++++ .../Breadcrumb/BreadcrumbTests.cs | 70 +++++++++++++++++++ .../Components/Breadcrumb/Breadcrumb.razor | 3 +- 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 SiemensIXBlazor.Tests/Breadcrumb/BreadcrumbItemTests.cs create mode 100644 SiemensIXBlazor.Tests/Breadcrumb/BreadcrumbTests.cs diff --git a/SiemensIXBlazor.Tests/Breadcrumb/BreadcrumbItemTests.cs b/SiemensIXBlazor.Tests/Breadcrumb/BreadcrumbItemTests.cs new file mode 100644 index 0000000..1f69087 --- /dev/null +++ b/SiemensIXBlazor.Tests/Breadcrumb/BreadcrumbItemTests.cs @@ -0,0 +1,18 @@ +using Bunit; +using SiemensIXBlazor.Components; + +namespace SiemensIXBlazor.Tests +{ + public class BreadcrumbItemTests: TestContextBase + { + [Fact] + public void BreadcrumbItemRendersWithoutCrashing() + { + // Arrange + var cut = RenderComponent(); + + // Assert + cut.MarkupMatches(""); + } + } +} \ No newline at end of file diff --git a/SiemensIXBlazor.Tests/Breadcrumb/BreadcrumbTests.cs b/SiemensIXBlazor.Tests/Breadcrumb/BreadcrumbTests.cs new file mode 100644 index 0000000..409f400 --- /dev/null +++ b/SiemensIXBlazor.Tests/Breadcrumb/BreadcrumbTests.cs @@ -0,0 +1,70 @@ +namespace SiemensIXBlazor.Tests +{ + using Bunit; + using Microsoft.AspNetCore.Components; + using SiemensIXBlazor.Components; + + public class BreadcrumbTests : TestContextBase + { + [Fact] + public void BreadcrumbRendersWithoutCrashing() + { + // Arrange + var cut = RenderComponent(parameters => { + parameters.Add(p => p.Id, "testId"); + parameters.Add(p => p.Ghost, true); + parameters.Add(p => p.AriaLabelPreviousButton, "previous"); + parameters.Add(p => p.NextItems, ["Data"]); + parameters.Add(p => p.VisibleItemCount, 9); + }); + + // Assert + cut.MarkupMatches(""); + } + + [Fact] + public void BreadcrumbRendersChildContent() + { + // Arrange + var expectedContent = "Expected content"; + + // Act + var cut = RenderComponent(parameters => parameters + .Add(p => p.ChildContent, builder => + { + builder.AddContent(0, expectedContent); + })); + + // Assert + Assert.Contains(expectedContent, cut.Markup); + } + + [Fact] + public void ItemClickedEventTriggeredCorrectly() + { + // Arrange + var eventTriggered = false; + var cut = RenderComponent(parameters => parameters.Add(p => p.ItemClicked, EventCallback.Factory.Create(this, () => eventTriggered = true))); + + // Act + cut.Instance.ItemClicked.InvokeAsync("test"); + + // Assert + Assert.True(eventTriggered); + } + + [Fact] + public void NextItemClickedEventTriggeredCorrectly() + { + // Arrange + var eventTriggered = false; + var cut = RenderComponent(parameters => parameters.Add(p => p.NextItemClicked, EventCallback.Factory.Create(this, () => eventTriggered = true))); + + // Act + cut.Instance.NextItemClicked.InvokeAsync("test"); + + // Assert + Assert.True(eventTriggered); + } + } +} \ No newline at end of file diff --git a/SiemensIXBlazor/Components/Breadcrumb/Breadcrumb.razor b/SiemensIXBlazor/Components/Breadcrumb/Breadcrumb.razor index 3e6398c..f7c4b32 100644 --- a/SiemensIXBlazor/Components/Breadcrumb/Breadcrumb.razor +++ b/SiemensIXBlazor/Components/Breadcrumb/Breadcrumb.razor @@ -9,11 +9,12 @@ *@ @using Microsoft.JSInterop; +@using System.Text.Json @inject IJSRuntime JSRuntime @inherits IXBaseComponent @namespace SiemensIXBlazor.Components - + @ChildContent \ No newline at end of file From 7046db551657686a084029a3192585d03788e980 Mon Sep 17 00:00:00 2001 From: Yagizhan Necat Yakali Date: Mon, 27 May 2024 16:55:37 +0300 Subject: [PATCH 15/25] test: Add unit tests for Button component --- SiemensIXBlazor.Tests/Button/ButtonTests.cs | 47 +++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 SiemensIXBlazor.Tests/Button/ButtonTests.cs diff --git a/SiemensIXBlazor.Tests/Button/ButtonTests.cs b/SiemensIXBlazor.Tests/Button/ButtonTests.cs new file mode 100644 index 0000000..f7409a7 --- /dev/null +++ b/SiemensIXBlazor.Tests/Button/ButtonTests.cs @@ -0,0 +1,47 @@ +using Bunit; +using Microsoft.AspNetCore.Components; +using SiemensIXBlazor.Components; +using SiemensIXBlazor.Enums.Button; + +namespace SiemensIXBlazor.Tests +{ + public class ButtonTests: TestContextBase + { + [Fact] + public void ButtonRendersWithoutCrashing() + { + // Arrange + var cut = RenderComponent