diff --git a/src/BootstrapBlazor/Components/Rate/Rate.razor.cs b/src/BootstrapBlazor/Components/Rate/Rate.razor.cs index 5fe375f8ba374a4c05369465e148aad50596cf4e..03823582fd015decbd1c00f81a091014ff253a62 100644 --- a/src/BootstrapBlazor/Components/Rate/Rate.razor.cs +++ b/src/BootstrapBlazor/Components/Rate/Rate.razor.cs @@ -92,11 +92,13 @@ public partial class Rate : IDisposable /// protected virtual void Dispose(bool disposing) { - - if (disposing && Interop != null) + if (disposing) { - Interop.Dispose(); - Interop = null; + if (Interop != null) + { + Interop.Dispose(); + Interop = null; + } } } diff --git a/test/UnitTest/Components/RateTest.cs b/test/UnitTest/Components/RateTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..11262a6c0a3662781aa052d373435f479f3f8eff --- /dev/null +++ b/test/UnitTest/Components/RateTest.cs @@ -0,0 +1,63 @@ +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +// Website: https://www.blazor.zone or https://argozhang.github.io/ + +namespace UnitTest.Components; + +public class RateTest : BootstrapBlazorTestBase +{ + [Fact] + public void Value_Ok() + { + var cut = Context.RenderComponent(builder => builder.Add(s => s.Value, 5)); + cut.Contains("rate"); + } + + [Fact] + public void IsDisable_Ok() + { + var cut = Context.RenderComponent(builder => + { + builder.Add(s => s.IsDisable, true); + builder.Add(s => s.Value, 5); + }); + + var ele = cut.Find(".disabled"); + Assert.NotNull(ele); + } + + [Fact] + public async Task ValueChanged_Ok() + { + var ret = false; + var cut = Context.RenderComponent(builder => + { + builder.Add(s => s.Value, 3); + builder.Add(s => s.ValueChanged, EventCallback.Factory.Create(this, v => + { + ret = true; + })); + }); + + await cut.Instance.Clicked(1); + Assert.True(ret); + } + + [Fact] + public async Task OnValueChanged_Ok() + { + var ret = false; + var cut = Context.RenderComponent(builder => + { + builder.Add(s => s.OnValueChanged, new Func(v => + { + ret = true; + return Task.CompletedTask; + })); + builder.Add(s => s.Value, 5); + }); + + await cut.Instance.Clicked(1); + Assert.True(ret); + } +}