-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Component tests added [DateDropdown-MapNavigation]
- Loading branch information
1 parent
b33d229
commit 03b6009
Showing
30 changed files
with
1,117 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
// ----------------------------------------------------------------------- | ||
// SPDX-FileCopyrightText: 2024 Siemens AG | ||
// | ||
// SPDX-License-Identifier: MIT | ||
// | ||
// This source code is licensed under the MIT license found in the | ||
// LICENSE file in the root directory of this source tree. | ||
// ----------------------------------------------------------------------- | ||
|
||
using System.Text.Json; | ||
using Bunit; | ||
using Microsoft.AspNetCore.Components; | ||
using SiemensIXBlazor.Components; | ||
using SiemensIXBlazor.Objects.DateDropdown; | ||
|
||
namespace SiemensIXBlazor.Tests; | ||
|
||
public class DateDropdownTest : TestContextBase | ||
{ | ||
[Fact] | ||
public void ComponentRendersWithoutCrashing() | ||
{ | ||
// Arrange | ||
var cut = RenderComponent<DateDropdown>(); | ||
|
||
// Assert | ||
cut.MarkupMatches(@" | ||
<ix-date-dropdown id="""" custom-range-allowed="""" date-range-id=""custom"" format=""yyyy/LL/dd"" i18n-custom-item=""Custom..."" i18n-done=""Done"" i18n-no-range=""No range set"" range=""""></ix-date-dropdown> | ||
"); | ||
} | ||
|
||
[Fact] | ||
public void AllPropertiesAreSetCorrectly() | ||
{ | ||
// Arrange | ||
var dateDropdownOptions = new DateDropdownOption[] { new() { Id = "test", Label = "Test" } }; | ||
var dateRangeChangeEvent = new EventCallbackFactory().Create<DateDropdownResponse>(this, response => | ||
{ | ||
/* your action here */ | ||
}); | ||
|
||
var cut = RenderComponent<DateDropdown>(parameters => parameters | ||
.Add(p => p.Id, "testId") | ||
.Add(p => p.CustomRangeAllowed, true) | ||
.Add(p => p.DateRangeId, "custom") | ||
.Add(p => p.DateRangeOptions, dateDropdownOptions) | ||
.Add(p => p.Format, "yyyy/LL/dd") | ||
.Add(p => p.From, "2022/01/01") | ||
.Add(p => p.I18NCustomItem, "Custom...") | ||
.Add(p => p.I18NDone, "Done") | ||
.Add(p => p.I18NNoRange, "No range set") | ||
.Add(p => p.MaxDate, "2022/12/31") | ||
.Add(p => p.MinDate, "2022/01/01") | ||
.Add(p => p.Range, true) | ||
.Add(p => p.To, "2022/12/31") | ||
.Add(p => p.DateRangeChangeEvent, dateRangeChangeEvent)); | ||
|
||
// Assert | ||
cut.MarkupMatches(@" | ||
<ix-date-dropdown id=""testId"" custom-range-allowed="""" date-range-id=""custom"" format=""yyyy/LL/dd"" from=""2022/01/01"" i18n-custom-item=""Custom..."" i18n-done=""Done"" i18n-no-range=""No range set"" max-date=""2022/12/31"" min-date=""2022/01/01"" range="""" to=""2022/12/31""></ix-date-dropdown> | ||
"); | ||
} | ||
|
||
[Fact] | ||
public void DateRangeChangeEventIsTriggeredCorrectly() | ||
{ | ||
// Arrange | ||
var dateDropdownOptions = new DateDropdownOption[] | ||
{ | ||
new() { Id = "test", Label = "Test", From = "2022/01/01", To = "2022/12/31" }, | ||
new() { Id = "test2", Label = "Test2", From = "2023/01/01", To = "2023/12/31" } | ||
}; | ||
var dateRangeChangeEventTriggered = false; | ||
var dateRangeChangeEvent = | ||
new EventCallbackFactory().Create<DateDropdownResponse>(this, | ||
response => { dateRangeChangeEventTriggered = true; }); | ||
|
||
var cut = RenderComponent<DateDropdown>(parameters => parameters | ||
.Add(p => p.Id, "testId") | ||
.Add(p => p.CustomRangeAllowed, true) | ||
.Add(p => p.DateRangeId, "test1") | ||
.Add(p => p.DateRangeOptions, dateDropdownOptions) | ||
.Add(p => p.Format, "yyyy/LL/dd") | ||
.Add(p => p.From, "2022/01/01") | ||
.Add(p => p.I18NCustomItem, "Custom...") | ||
.Add(p => p.I18NDone, "Done") | ||
.Add(p => p.I18NNoRange, "No range set") | ||
.Add(p => p.MaxDate, "2022/12/31") | ||
.Add(p => p.MinDate, "2022/01/01") | ||
.Add(p => p.Range, true) | ||
.Add(p => p.To, "2022/12/31") | ||
.Add(p => p.DateRangeChangeEvent, dateRangeChangeEvent)); | ||
|
||
// Act | ||
var json = JsonSerializer.Serialize(new DateDropdownResponse { Id = "test2" }); | ||
var parsedJson = JsonDocument.Parse(json).RootElement; | ||
cut.Instance.DateRangeChange(parsedJson); | ||
|
||
// Assert | ||
Assert.True(dateRangeChangeEventTriggered); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
// ----------------------------------------------------------------------- | ||
// SPDX-FileCopyrightText: 2024 Siemens AG | ||
// | ||
// SPDX-License-Identifier: MIT | ||
// | ||
// This source code is licensed under the MIT license found in the | ||
// LICENSE file in the root directory of this source tree. | ||
// ----------------------------------------------------------------------- | ||
|
||
using System.Text.Json; | ||
using Bunit; | ||
using Microsoft.AspNetCore.Components; | ||
using SiemensIXBlazor.Components; | ||
using SiemensIXBlazor.Enums.DatePicker; | ||
using SiemensIXBlazor.Objects; | ||
|
||
namespace SiemensIXBlazor.Tests; | ||
|
||
public class DatePickerTest : TestContextBase | ||
{ | ||
[Fact] | ||
public void ComponentRendersAndPropertiesAreSetCorrectly() | ||
{ | ||
// Arrange | ||
var cut = RenderComponent<DatePicker>(parameters => parameters | ||
.Add(p => p.Id, "testId") | ||
.Add(p => p.Corners, DatePickerCorners.Rounded) | ||
.Add(p => p.EventDelimiter, " - ") | ||
.Add(p => p.Format, "yyyy/MM/dd") | ||
.Add(p => p.From, "2022/01/01") | ||
.Add(p => p.MaxDate, "2022/12/31") | ||
.Add(p => p.MinDate, "2022/01/01") | ||
.Add(p => p.Range, true) | ||
.Add(p => p.I18nDone, "Done") | ||
.Add(p => p.Locale, "en-US") | ||
.Add(p => p.WeekStartIndex, 0) | ||
.Add(p => p.To, "2022/12/31")); | ||
|
||
// Assert | ||
cut.MarkupMatches($@" | ||
<ix-date-picker id=""testId"" from=""2022/01/01"" to=""2022/12/31"" corners=""rounded"" format=""yyyy/MM/dd"" max-date=""2022/12/31"" min-date=""2022/01/01"" range="""" locale=""en-US"" i18n-done=""Done"" week-start-index=""0""></ix-date-picker>"); | ||
} | ||
|
||
[Fact] | ||
public void EventCallbacksAreTriggered() | ||
{ | ||
// Arrange | ||
var dateRangeChangeInvoked = false; | ||
var dateChangeInvoked = false; | ||
var dateSelectInvoked = false; | ||
|
||
var dateRangeChangeEvent = | ||
new EventCallbackFactory().Create<DatePickerResponse>(this, | ||
response => { dateRangeChangeInvoked = true; }); | ||
|
||
var dateChangeEvent = | ||
new EventCallbackFactory().Create<DatePickerResponse>(this, | ||
response => { dateChangeInvoked = true; }); | ||
|
||
var dateSelectEvent = | ||
new EventCallbackFactory().Create<DatePickerResponse>(this, | ||
response => { dateSelectInvoked = true; }); | ||
|
||
var cut = RenderComponent<DatePicker>(parameters => parameters | ||
.Add(p => p.Id, "testId") | ||
.Add(p => p.DateRangeChangeEvent!, dateRangeChangeEvent) | ||
.Add(p => p.DateChangeEvent!, dateChangeEvent) | ||
.Add(p => p.DateSelectEvent, dateSelectEvent)); | ||
|
||
// Act | ||
var json = JsonSerializer.Serialize(new DatePickerResponse { From = "2024/01/01", To = "2024/12/31\"" }); | ||
var parsedJson = JsonDocument.Parse(json).RootElement; | ||
cut.Instance.DateRangeChange(parsedJson); | ||
cut.Instance.DateChange(parsedJson); | ||
cut.Instance.DateSelect(parsedJson); | ||
|
||
// Assert | ||
Assert.True(dateRangeChangeInvoked); | ||
Assert.True(dateChangeInvoked); | ||
Assert.True(dateSelectInvoked); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
// ----------------------------------------------------------------------- | ||
// SPDX-FileCopyrightText: 2024 Siemens AG | ||
// | ||
// SPDX-License-Identifier: MIT | ||
// | ||
// This source code is licensed under the MIT license found in the | ||
// LICENSE file in the root directory of this source tree. | ||
// ----------------------------------------------------------------------- | ||
|
||
using System.Text.Json; | ||
using Bunit; | ||
using Microsoft.AspNetCore.Components; | ||
using SiemensIXBlazor.Components; | ||
using SiemensIXBlazor.Objects; | ||
|
||
namespace SiemensIXBlazor.Tests; | ||
|
||
public class DateTimePickerTest : TestContextBase | ||
{ | ||
[Fact] | ||
public void ComponentRendersWithCorrectProperties() | ||
{ | ||
// Arrange | ||
var cut = RenderComponent<DateTimePicker>(parameters => parameters | ||
.Add(p => p.Id, "testId") | ||
.Add(p => p.DateFormat, "yyyy/MM/dd") | ||
.Add(p => p.EventDelimiter, " - ") | ||
.Add(p => p.From, DateTime.Now.ToString("yyyy/MM/dd")) | ||
.Add(p => p.MaxDate, "2022/12/31") | ||
.Add(p => p.MinDate, "2022/01/01") | ||
.Add(p => p.Range, true) | ||
.Add(p => p.ShowHour, false) | ||
.Add(p => p.ShowMinutes, false) | ||
.Add(p => p.ShowSeconds, false) | ||
.Add(p => p.ShowTimeReference, "") | ||
.Add(p => p.TextSelectDate, "Done") | ||
.Add(p => p.Time, "12:00:00") | ||
.Add(p => p.TimeFormat, "HH:mm:ss") | ||
.Add(p => p.TimeReference, "12:00:00") | ||
.Add(p => p.To, "2022/12/31")); | ||
|
||
// Assert | ||
cut.MarkupMatches("<ix-datetime-picker id=\"testId\" date-format=\"yyyy/MM/dd\" event-delimiter=\" - \" from=\"2024/05/28\" max-date=\"2022/12/31\" min-date=\"2022/01/01\" range=\"\" show-time-reference=\"\" text-select-date=\"Done\" time=\"12:00:00\" time-format=\"HH:mm:ss\" time-reference=\"12:00:00\" to=\"2022/12/31\"></ix-datetime-picker>"); | ||
} | ||
|
||
[Fact] | ||
public void EventCallbacksAreTriggeredCorrectly() | ||
{ | ||
// Arrange | ||
bool isDateChangeEventTriggered = false; | ||
bool isDateSelectEventTriggered = false; | ||
bool isTimeChangeEventTriggered = false; | ||
bool isDoneEventTriggered = false; | ||
|
||
var cut = RenderComponent<DateTimePicker>(parameters => parameters | ||
.Add(p => p.DateChangeEvent, EventCallback.Factory.Create<string>(this, (date) => isDateChangeEventTriggered = true)) | ||
.Add(p => p.DateSelectEvent, EventCallback.Factory.Create<DateTimePickerResponse>(this, (response) => isDateSelectEventTriggered = true)) | ||
.Add(p => p.TimeChangeEvent, EventCallback.Factory.Create<string>(this, (time) => isTimeChangeEventTriggered = true)) | ||
.Add(p => p.DoneEvent, EventCallback.Factory.Create<string>(this, (done) => isDoneEventTriggered = true))); | ||
|
||
// Act | ||
cut.Instance.DateChange("2022/12/31"); | ||
cut.Instance.TimeChange("12:00:00"); | ||
|
||
var json = JsonSerializer.Serialize(new DateTimePickerResponse { Time = "2024/01/01" }); | ||
var parsedJson = JsonDocument.Parse(json).RootElement; | ||
cut.Instance.DateSelect(parsedJson); | ||
|
||
cut.Instance.Done("2022/12/31"); | ||
|
||
// Assert | ||
Assert.True(isDateChangeEventTriggered); | ||
Assert.True(isTimeChangeEventTriggered); | ||
Assert.True(isDoneEventTriggered); | ||
Assert.True(isDateSelectEventTriggered); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
// ----------------------------------------------------------------------- | ||
// SPDX-FileCopyrightText: 2024 Siemens AG | ||
// | ||
// SPDX-License-Identifier: MIT | ||
// | ||
// This source code is licensed under the MIT license found in the | ||
// LICENSE file in the root directory of this source tree. | ||
// ----------------------------------------------------------------------- | ||
|
||
using Bunit; | ||
using SiemensIXBlazor.Components; | ||
|
||
namespace SiemensIXBlazor.Tests; | ||
|
||
public class DividerTest : TestContextBase | ||
{ | ||
[Fact] | ||
public void ComponentRendersWithCorrectProperties() | ||
{ | ||
// Arrange | ||
var cut = RenderComponent<Divider>(parameters => parameters | ||
.Add(p => p.Class, "testClass") | ||
.Add(p => p.Style, "testStyle")); | ||
|
||
// Assert | ||
cut.MarkupMatches("<ix-divider class=\"testClass\" style=\"testStyle\"></ix-divider>"); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
// ----------------------------------------------------------------------- | ||
// SPDX-FileCopyrightText: 2024 Siemens AG | ||
// | ||
// SPDX-License-Identifier: MIT | ||
// | ||
// This source code is licensed under the MIT license found in the | ||
// LICENSE file in the root directory of this source tree. | ||
// ----------------------------------------------------------------------- | ||
|
||
using Bunit; | ||
using Microsoft.AspNetCore.Components; | ||
using SiemensIXBlazor.Components; | ||
|
||
namespace SiemensIXBlazor.Tests.Dropdown; | ||
|
||
public class DropdownItemTest : TestContextBase | ||
{ | ||
[Fact] | ||
public void ComponentRendersWithCorrectProperties() | ||
{ | ||
// Arrange | ||
var cut = RenderComponent<DropdownItem>(parameters => parameters | ||
.Add(p => p.Label, "testLabel") | ||
.Add(p => p.Value, "testValue")); | ||
|
||
// Assert | ||
cut.MarkupMatches("<ix-dropdown-item label=\"testLabel\" value=\"testValue\"></ix-dropdown-item>"); | ||
} | ||
|
||
[Fact] | ||
public async Task EventCallbacksAreTriggeredCorrectly() | ||
{ | ||
// Arrange | ||
var isOnClickEventTriggered = false; | ||
|
||
var cut = RenderComponent<DropdownItem>(parameters => parameters | ||
.Add(p => p.OnClickEvent, | ||
EventCallback.Factory.Create<string>(this, label => isOnClickEventTriggered = true))); | ||
|
||
// Act | ||
await cut.Instance.OnClickEvent.InvokeAsync("testLabel"); | ||
|
||
// Assert | ||
Assert.True(isOnClickEventTriggered); | ||
} | ||
} |
Oops, something went wrong.